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
作者
石 凯
发布于
2023年08月17日
许可协议