ホームページ > データベース > mysql チュートリアル > 左右の結合を交換できるのはどのような場合ですか?

左右の結合を交換できるのはどのような場合ですか?

DDD
リリース: 2025-01-14 16:06:44
オリジナル
411 人が閲覧しました

When Are Left and Right Joins Interchangeable?

LEFT 結合と RIGHT 結合の互換性を理解する

データベース結合は、共有列に基づいて複数のテーブルのデータを結合するための基本です。 LEFT 結合と RIGHT 結合は似ているように見えますが、その順序は結果に大きな影響を与えます。 ただし、特定の条件下では、同一の出力が生成される場合があります。

2 つのサンプル テーブルを使って説明してみましょう:

<code>Table1:

Id   Name
1    A
2    B

Table2:

Id   Name
1    A
2    B
3    C</code>
ログイン後にコピー

次の SQL クエリについて考えてみましょう:

<code class="language-sql">SELECT *
FROM Table1
LEFT JOIN Table2 ON Table1.id = Table2.id;</code>
ログイン後にコピー
<code class="language-sql">SELECT *
FROM Table2
RIGHT JOIN Table1 ON Table1.id = Table2.id;</code>
ログイン後にコピー

これらのクエリは同じデータセットを返します。 どちらも Table1 (最初のクエリの左側のテーブル、2 番目のクエリの右側のテーブル) のすべての行を保持し、他のテーブルからの一致する行を含めます。

テーブルを切り替えると、重要な違いが現れます:

<code class="language-sql">SELECT *
FROM Table2
LEFT JOIN Table1 ON Table1.id = Table2.id;</code>
ログイン後にコピー

このクエリは異なる結果を返します。 Table2 には Id にはない Table1 (3) が含まれているため、前の例とは異なり、この行は出力に含まれます。

要約すると、SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.id = Table2.idSELECT * FROM Table2 RIGHT JOIN Table1 ON Table1.id = Table2.id は場合によっては同じ結果を生成する可能性がありますが、LEFT または RIGHT 結合でテーブルを逆にすると結果が根本的に変わります。 LEFT 結合と RIGHT 結合のどちらかを選択する場合は、テーブル構造と目的の結果セットを慎重に検討することが重要です。

以上が左右の結合を交換できるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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