在 PostgreSQL 中,WITH 關(guān)鍵字用于創(chuàng)建一個臨時的命名查詢,也被稱為"common table expression"(通用表表達(dá)式)。WITH 語句可以用于簡化復(fù)雜查詢,提高查詢的可讀性和可維護(hù)性。
WITH 語句的基本語法如下:
WITH <expression_name> AS (
<subquery>
)
SELECT <columns>
FROM <expression_name>;
其中,<expression_name>
是表達(dá)式的名稱,<subquery>
是一個子查詢,<columns>
是要查詢的列,可以是 <expression_name>
中的列或者其他表中的列。
WITH 語句可以包含多個表達(dá)式,每個表達(dá)式之間使用逗號分隔,例如:
WITH
cte1 AS (
SELECT * FROM table1
),
cte2 AS (
SELECT * FROM table2
)
SELECT *
FROM cte1
JOIN cte2 ON cte1.id = cte2.id;
在實際使用中,WITH 語句可以用于創(chuàng)建遞歸查詢、多層嵌套查詢、子查詢共享等復(fù)雜查詢場景。