ホームページ > データベース > 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
オリジナル
803 人が閲覧しました

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 つのテーブルを調べてみましょう:

<code class="language-sql">CREATE TABLE Table1 (id INT, Name VARCHAR(10));
CREATE TABLE Table2 (id INT, Name VARCHAR(10));</code>
ログイン後にコピー

Table1を入力中:

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

そしてTable2:

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

クエリ:

<code class="language-sql">SELECT *
FROM Table1
LEFT JOIN Table2 ON Table1.id = Table2.id;

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

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

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

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

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

このクエリは、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 サイトの他の関連記事を参照してください。

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