ホームページ > データベース > mysql チュートリアル > 再帰的な CTE を含む複数の CTE を単一の SQL クエリに結合するにはどうすればよいですか?

再帰的な CTE を含む複数の CTE を単一の SQL クエリに結合するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-31 21:44:14
オリジナル
258 人が閲覧しました

How Can I Combine Multiple CTEs, Including Recursive Ones, in a Single SQL Query?

単一 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 ...
ログイン後にコピー

この例では、

  • cte1 は再帰 CTE です。
  • cte2 は非再帰的ですCTE.
  • cte3 は非再帰 CTE です。

注: RECURSIVE の場合、CTE の順序は重要ではありません。キーワードが使用されています。

再帰的CTE:

再帰的 CTE は、その定義内でそれ自体を参照できます。これにより、階層構造またはツリー状構造を構築できます。上記の例では、cte2 は UNION ALL 句でそれ自体を参照しているため、再帰的 CTE です。

非再帰的 CTE:

なし-recursive CTE は、クエリ内で後から参照できる一時テーブルを定義するだけです。上の例では、cte1cte3 は非再帰 CTE です。

以上が再帰的な CTE を含む複数の CTE を単一の SQL クエリに結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート