ホームページ >データベース >mysql チュートリアル >複数の CTE を 1 つの SQL クエリに結合できますか?
従来の手法では、複雑なデータ取得タスクを実行するために複数の共通テーブル式 (CTE) を組み合わせる必要がよくあります。ただし、単一の SQL クエリ内で複数の CTE を結合する実現可能性については疑問が残ります。
実際、単一の SQL クエリ内で複数の CTE を結合することは完全に可能です。この構文では、WITH キーワードをクエリの先頭に 1 回だけ使用する必要があります。再帰的 CTE と非再帰的 CTE の組み合わせを扱う場合でも、RECURSIVE キーワードは先頭に 1 回だけ含める必要があります。
例:
WITH RECURSIVE cte1 AS (...) -- non-recursive , cte2 AS (SELECT ... UNION ALL SELECT ...) -- recursive , cte3 AS (...) SELECT ... FROM cte3 WHERE ...
RECURSIVE キーワードが存在する場合、CTE 句の数は無関係になります。 SQL マニュアルによると、CTE クエリは、WITH 句内の順序に関係なく、他の CTE を参照できます。
さらに、最後の SELECT ステートメントで参照されず、付随的な効果は実行されません。
以上が複数の CTE を 1 つの SQL クエリに結合できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。