ホームページ > データベース > mysql チュートリアル > 共有 ID を使用して 4 つの SQL テーブルを効率的に結合するにはどうすればよいですか?

共有 ID を使用して 4 つの SQL テーブルを効率的に結合するにはどうすればよいですか?

DDD
リリース: 2025-01-14 10:11:46
オリジナル
234 人が閲覧しました

How to Efficiently Join Four SQL Tables with Shared IDs?

ID を使用して複数の SQL テーブルを結合

データベース管理では、テーブルの結合は、複数のデータ ソースからデータを取得して相関付ける際の重要な操作です。相互に関連するデータ セットを操作する場合、共通の識別子に基づいてテーブルをマージする必要があります。

次のシナリオを考えてみましょう:

TableA、TableB、TableC、TableD という名前の 4 つの異なるテーブルがあります。それらの構造は次のとおりです:

<code>TableA - aID | nameA | dID
TableB - bID | nameB | cID | aID
TableC - cID | nameC | date
TableD - dID | nameD</code>
ログイン後にコピー

TableA から開始して、共有列「aID」を介して TableB との結合を実行することを目的としています。さらに、TableB を仲介として使用して TableA を TableC に接続するとします。次の SQL ステートメントはこれを実現します:

<code>SELECT TableA.*, TableB.*, TableC.*
FROM (TableB INNER JOIN TableA ON TableB.aID= TableA.aID)
INNER JOIN TableC ON(TableB.cID= Tablec.cID)
WHERE (DATE(TableC.date)=date(now()))</code>
ログイン後にコピー

しかし、「dID」列を使用して TableD をクエリに組み込もうとすると、「TableD」が不明であるというエラーが発生します。

解決策は、別の join ステートメントを追加することです。クエリの修正版を以下に示します:

<code>SELECT TableA.*, TableB.*, TableC.*, TableD.*
FROM TableA
    JOIN TableB
        ON TableB.aID = TableA.aID
    JOIN TableC
        ON TableC.cID = TableB.cID
    JOIN TableD
        ON TableD.dID = TableA.dID
WHERE DATE(TableC.date)=date(now())</code>
ログイン後にコピー

この変更されたクエリでは、TableA は「dID」列を介して TableD に直接接続されています。このアプローチでは、4 つのテーブルすべてが正常にマージされ、すべてのテーブルから一貫した方法でデータを取得できるようになります。

以上が共有 ID を使用して 4 つの SQL テーブルを効率的に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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