SQL JOIN の深い理解: INNER、LEFT、RIGHT、FULL JOIN の詳細な説明
SQL JOIN はデータ取得の中核となる操作で、共通フィールドに基づいて複数のテーブルの行を結合できます。 MySQL では、選択できる JOIN タイプがいくつかあり、それぞれが一致する行と一致しない行を処理する特定の方法を提供します。
さまざまな SQL JOIN タイプの違い
内部結合
左結合
右参加
完全結合
実際のケース
次のテーブルの例を考えてみましょう:
<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 サイトの他の関連記事を参照してください。