単一 SQL クエリ内の複数の CTE
SQL では、単一のクエリ内で複数の CTE (共通テーブル式) を組み合わせることができます。 。これを実現するには、クエリの先頭でキーワード WITH を 1 回使用する必要があります。
例:
を結合するとします。 1 つの再帰的 CTE と 2 つの非再帰的 CTE。これは、次の構文を使用して実行できます。
WITH RECURSIVE cte1 AS (...), cte2 AS ( SELECT ... UNION ALL SELECT ... ), cte3 AS (...) SELECT ... FROM cte3 WHERE ...
この例では、
注: RECURSIVE の場合、CTE の順序は重要ではありません。キーワードが使用されています。
再帰的CTE:
再帰的 CTE は、その定義内でそれ自体を参照できます。これにより、階層構造またはツリー状構造を構築できます。上記の例では、cte2 は UNION ALL 句でそれ自体を参照しているため、再帰的 CTE です。
非再帰的 CTE:
なし-recursive CTE は、クエリ内で後から参照できる一時テーブルを定義するだけです。上の例では、cte1 と cte3 は非再帰 CTE です。
以上が再帰的な CTE を含む複数の CTE を単一の SQL クエリに結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。