ホームページ > データベース > mysql チュートリアル > 複数の CTE を 1 つの SQL クエリに結合できますか?

複数の CTE を 1 つの SQL クエリに結合できますか?

Patricia Arquette
リリース: 2025-01-01 10:49:11
オリジナル
200 人が閲覧しました

Can Multiple CTEs Be Combined in a Single SQL Query?

複数の CTE を使用したクエリ

従来の手法では、複雑なデータ取得タスクを実行するために複数の共通テーブル式 (CTE) を組み合わせる必要がよくあります。ただし、単一の SQL クエリ内で複数の CTE を結合する実現可能性については疑問が残ります。

複数の 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 サイトの他の関連記事を参照してください。

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