首頁 > 資料庫 > mysql教程 > 多個 CTE 可以合併在一個 SQL 查詢中嗎?

多個 CTE 可以合併在一個 SQL 查詢中嗎?

Patricia Arquette
發布: 2025-01-01 10:49:11
原創
201 人瀏覽過

Can Multiple CTEs Be Combined in a Single SQL Query?

使用多個 CTE 進行查詢

傳統實踐通常需要組合多個公共表表達式 (CTE) 來實現複雜的資料擷取任務。然而,對於在單一 SQL 查詢中組合多個 CTE 的可行性仍存在疑問。

支援多個 CTE

事實上,在單一 SQL 查詢中組合多個 CTE 是完全可行的。此語法要求僅使用一次WITH 關鍵字,位於查詢的開頭。即使在處理遞歸和非遞歸 CTE 的混合時,RECURSIVE 關鍵字仍然應該只在頂部包含一次。

例如:

WITH RECURSIVE
  cte1 AS (...)         -- non-recursive
, cte2 AS (SELECT ...
           UNION ALL
           SELECT ...)  -- recursive
, cte3 AS (...)
SELECT ... FROM cte3 WHERE ...
登入後複製

值得注意的是,順序當存在 RECURSIVE 關鍵字時,CTE 子句的數量變得無關緊要。根據 SQL 手冊,它允許 CTE 查詢引用其他 CTE,無論它們在 WITH 子句中的順序如何。

此外,最終 SELECT 語句中未引用且不具有非遞歸 CTE任何附帶效果都不會被執行。

以上是多個 CTE 可以合併在一個 SQL 查詢中嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板