ホームページ > データベース > mysql チュートリアル > SQL における INNER、LEFT、RIGHT、FULL JOIN はどのように異なりますか?

SQL における INNER、LEFT、RIGHT、FULL JOIN はどのように異なりますか?

Linda Hamilton
リリース: 2025-01-25 15:07:09
オリジナル
661 人が閲覧しました

How Do INNER, LEFT, RIGHT, and FULL JOINs Differ in SQL?

SQL JOIN の深い理解: INNER、LEFT、RIGHT、FULL JOIN の詳細な説明

SQL JOIN はデータ取得の中核となる操作で、共通フィールドに基づいて複数のテーブルの行を結合できます。 MySQL では、選択できる JOIN タイプがいくつかあり、それぞれが一致する行と一致しない行を処理する特定の方法を提供します。

さまざまな SQL JOIN タイプの違い

内部結合

  • 一致する条件に基づいて 2 つのテーブルを結合します。
  • 両方のテーブルで共通フィールドが一致する行のみを返します。

左結合

  • 一致する条件に基づいて 2 つのテーブルを結合します。
  • 右側のテーブルに一致する行がない場合でも、左側のテーブルのすべての行を返します。
  • 右側のテーブル内の一致しない行には NULL 値が入力されます。

右参加

  • LEFT JOIN と似ていますが、左側のテーブルに一致する行がない場合でも、右側のテーブルからすべての行を返します。
  • 左側のテーブル内の一致しない行は NULL 値で埋められます。

完全結合

  • LEFT OUTER JOIN と RIGHT OUTER JOIN を組み合わせた結果。
  • 一致するかどうかに関係なく、両方のテーブルのすべての行を返します。
  • どちらのテーブルでも一致しない行には NULL 値が入ります。

実際のケース

次のテーブルの例を考えてみましょう:

<code>表A:
| id | firstName | lastName |
|---|---|---|
| 1 | Arun | Prasanth |
| 2 | Ann | Antony |
| 3 | Sruthy | Abc |
| 6 | New | Abc |

表B:
| id2 | age | place |
|---|---|---|
| 1 | 24 | Kerala |
| 2 | 24 | Usa |
| 3 | 25 | Ekm |
| 5 | 24 | Chennai |</code>
ログイン後にコピー
ログイン後にコピー

内部結合:

<code>SELECT *
FROM 表A
INNER JOIN 表B
ON 表A.id = 表B.id2;</code>
ログイン後にコピー

結果:

firstName lastName age place
Arun Prasanth 24 Kerala
Ann Antony 24 Usa
Sruthy Abc 25 Ekm

左結合:

<code>SELECT *
FROM 表A
LEFT JOIN 表B
ON 表A.id = 表B.id2;</code>
ログイン後にコピー

結果:

firstName lastName age place
Arun Prasanth 24 Kerala
Ann Antony 24 Usa
Sruthy Abc 25 Ekm
New Abc NULL NULL

右結合:

<code>SELECT *
FROM 表A
RIGHT JOIN 表B
ON 表A.id = 表B.id2;</code>
ログイン後にコピー

結果:

firstName lastName age place
Arun Prasanth 24 Kerala
Ann Antony 24 Usa
Sruthy Abc 25 Ekm
NULL NULL 24 Chennai

完全結合:

<code>表A:
| id | firstName | lastName |
|---|---|---|
| 1 | Arun | Prasanth |
| 2 | Ann | Antony |
| 3 | Sruthy | Abc |
| 6 | New | Abc |

表B:
| id2 | age | place |
|---|---|---|
| 1 | 24 | Kerala |
| 2 | 24 | Usa |
| 3 | 25 | Ekm |
| 5 | 24 | Chennai |</code>
ログイン後にコピー
ログイン後にコピー

結果:

firstName lastName age place
Arun Prasanth 24 Kerala
Ann Antony 24 Usa
Sruthy Abc 25 Ekm
New Abc NULL NULL
NULL NULL 24 Chennai

以上がSQL における INNER、LEFT、RIGHT、FULL JOIN はどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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