ホームページ > データベース > mysql チュートリアル > 「FROM Table1 LEFT JOIN Table2」と「FROM Table2 RIGHT JOIN Table1」は常に交換可能ですか?

「FROM Table1 LEFT JOIN Table2」と「FROM Table2 RIGHT JOIN Table1」は常に交換可能ですか?

DDD
リリース: 2025-01-14 15:46:44
オリジナル
864 人が閲覧しました

Are `FROM Table1 LEFT JOIN Table2` and `FROM Table2 RIGHT JOIN Table1` Always Interchangeable?

SQL LEFT JOINRIGHT JOIN: それらは常に同等ですか?

SQL の LEFT JOIN 句と RIGHT JOIN 句は、2 つのテーブルのデータを結合します。場合によっては互換性があるように見えますが、重要な違いが存在します。

2 つのテーブルを調べてみましょう:

CREATE TABLE Table1 (id INT, Name VARCHAR(10));
CREATE TABLE Table2 (id INT, Name VARCHAR(10));
ログイン後にコピー

Table1を入力中:

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

そしてTable2:

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

クエリ:

SELECT *
FROM Table1
LEFT JOIN Table2 ON Table1.id = Table2.id;

SELECT *
FROM Table2
RIGHT JOIN Table1 ON Table1.id = Table2.id;
ログイン後にコピー

この特定のインスタンスでは同じ結果が得られます。 どちらも Table1.id = Table2.id.

に基づいて行と一致します。

ただし、次の代替手段 LEFT JOIN を検討してください:

SELECT *
FROM Table2
LEFT JOIN Table1 ON Table2.id = Table1.id;
ログイン後にコピー

このクエリは、Table2 に一致しない行を含む、Table1 からのすべての行を返します。 RIGHT JOIN (例: FROM Table1 RIGHT JOIN Table2) は逆に動作し、そのような一致しない行を省略します。

したがって、FROM Table1 LEFT JOIN Table2FROM Table2 RIGHT JOIN Table1 は特定の条件下では同様の結果を生成する可能性がありますが、結合方向は出力の完全性に大きく影響します。 これらは普遍的に交換可能ではありません。

以上が「FROM Table1 LEFT JOIN Table2」と「FROM Table2 RIGHT JOIN Table1」は常に交換可能ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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