欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql支持with

傅智翔2年前12瀏覽0評論

MySQL從8.0版本開始支持WITH語句,可以使得查詢更加簡單、清晰、高效。

WITH cte AS (
SELECT 
column_1, 
column_2,
column_3
FROM 
table_1
)
SELECT 
cte.column_1 as col_1,
SUM(table_2.column_2) as sum_col2
FROM 
cte
JOIN 
table_2
ON 
cte.column_2 = table_2.column_2
GROUP BY 
cte.column_1
ORDER BY 
sum_col2 DESC;

上面的查詢代碼中,WITH語句的名稱為cte,查詢的結果集指定了三個列。接下來的SELECT語句中引用了cte,后面會和另外一個表進行JOIN操作,最后對結果進行了分組和排序。如果沒有使用WITH語句,可能需要在查詢中寫多次相同的子查詢,WITH語句可以讓查詢語句更加簡潔易懂。

需要注意的一點是,WITH語句的查詢結果也可以被其他查詢使用。例如:

WITH cte AS (
SELECT 
column_1, 
column_2,
column_3
FROM 
table_1
)
SELECT 
cte.column_1 as col_1,
SUM(table_2.column_2) as sum_col2
FROM 
cte
JOIN 
table_2
ON 
cte.column_2 = table_2.column_2
GROUP BY 
cte.column_1
HAVING 
sum_col2 >(
SELECT 
AVG(sum_col2)
FROM (
WITH cte_2 AS (
SELECT 
column_1, 
column_2,
column_3
FROM 
table_1
)
SELECT 
cte_2.column_1 as col_1,
SUM(table_2.column_2) as sum_col2
FROM 
cte_2
JOIN 
table_2
ON 
cte_2.column_2 = table_2.column_2
GROUP BY 
cte_2.column_1
) as subquery
)
ORDER BY 
sum_col2 DESC;

上面的代碼中,內部的WITH語句cte_2也被用于了HAVING子句中的子查詢中。

總結來說,MySQL支持WITH語句可以讓查詢更加清晰、簡潔、高效,特別是對于需要多次使用相同子查詢的場景。但是需要注意WITH語句的查詢結果也可以被其他查詢使用。