MySQL公共表表达式
在数据库中,WITH AS
是一种 SQL 查询语句的语法结构,也被称为"公共表表达式"(Common Table Expression,CTE)。
WITH AS
允许我们在查询中创建一个临时的、命名的结果集,这个结果集可以在后续的查询中被引用。这样可以提高查询的可读性和复用性,并且可以避免编写重复的子查询。
WITH AS
语法如下所示:
WITH expression_name AS (
SELECT column1, column2, ...
FROM table_name
WHERE condition
)
SELECT *
FROM expression_name;
其中,expression_name
是用于引用该临时结果集的名称,可以在后续的查询中使用。括号内是一个常规的 SELECT 查询,用于定义临时结果集。在查询结束后,可以通过指定 expression_name
来引用这个结果集。
例如,以下示例展示了如何使用 WITH AS
创建一个临时的结果集,并在后续的查询中引用它:
WITH sales_data AS (
SELECT product_id, SUM(quantity) AS total_quantity
FROM order_details
GROUP BY product_id
)
SELECT product_id, total_quantity
FROM sales_data
WHERE total_quantity > 100;
在上述示例中,我们首先通过 WITH AS
创建了一个临时的结果集 sales_data
,该结果集包含了每个产品的总销售数量。然后,我们在下一个查询中引用了 sales_data
,并筛选出总销售数量大于 100 的产品。
总而言之,WITH AS
让我们能够在查询中创建临时的结果集,并使其可以在后续的查询中被引用,提高了查询的可读性和复用性。
MySQL公共表表达式
https://shikai.info/archives/mysql-cte