LEFT JOINとRIGHT JOIN

SQLのデータ結合

Maham Faisal Khan

Senior Content Developer, Data Science

INNER JOINとは

id フィールドでINNER JOINする仕組み

前のレッスンで繰り返し表示された図で、左と右の2つのテーブル、および、2つのテーブルで内部結合された後の結果を示しています。 inner join に関係のないレコードは薄く表示されています。

SQLのデータ結合

LEFT JOINの初期段階

  • LEFT JOINは、左テーブルのすべての行と、指定の結合フィールドで一致する右テーブルの行を返します
    idフィールドでLEFT JOINする仕組み

左側のテーブルと右側のテーブルを示す図で、両方のテーブルのID列で一致する行を指す矢印が描かれています。 left join に関係のないレコードはグレー表示されています。

SQLのデータ結合

LEFT JOINとは

idフィールドでLEFT JOINする仕組み

2つのテーブル(左テーブルと右テーブル)と、これらのテーブルに対してLEFT JOINを実行した後の結果を示す図。 left join に関係のないレコードは薄く表示されています。

SQLのデータ結合

LEFT JOINの構文

SELECT p1.country, prime_minister, president
FROM prime_ministers AS p1
LEFT JOIN presidents AS p2
USING(country);

注意:LEFT JOINLEFT OUTER JOINと書くこともできます。

| country        | prime_minister    | president               |
|----------------|-------------------|-------------------------|
| Egypt          | Mostafa Madbouly  | Abdel Fattah el-Sisi    |
| Portugal       | Luís Montenegro   | Marcelo Rebelo de Sousa |
| Pakistan       | Shehbaz Sharif    | Asif Ali Zardari        |
| United Kingdom | Keir Starmer      | null                    | 
| India          | Narendra Modi     | Droupadi Murmu          |
| Australia      | Anthony Albanese  | null                    | 
...
SQLのデータ結合

RIGHT JOIN

idフィールドでRIGHT JOINする仕組み

左テーブルと右テーブル、そしてこれらのテーブルに対してRIGHT JOINを実行した後の結果を示す図。 右結合に関係のないレコードはグレー表示されています。

SQLのデータ結合

RIGHT JOINの構文

SELECT *
FROM left_table
RIGHT JOIN right_table
ON left_table.id = right_table.id;

注意:RIGHT JOINRIGHT OUTER JOINと書くこともできます。

SQLのデータ結合

大統領と首相でのRIGHT JOIN使用例

SELECT p1.country, prime_minister, president
FROM prime_ministers AS p1
RIGHT JOIN presidents AS p2
USING(country);
| country        | prime_minister   | president               |
|----------------|------------------|-------------------------|
| Egypt          | Mostafa Madbouly | Abdel Fattah el-Sisi    |
| Portugal       | Luís Montenegro  | Marcelo Rebelo de Sousa |
| USA            | null             | Joe Biden               |
| Uruguay        | null             | Luis Lacalle Pou        |     
| Pakistan       | Shehbaz Sharif   | Asif Ali Zardari        |
| Chile          | null             | Gabriel Boric           |      
| India          | Narendra Modi    | Droupadi Murmu          |      
SQLのデータ結合

LEFT JOINとRIGHT JOINの選び方

  • RIGHT JOINLEFT JOINよりも使用頻度が低い
  • どのRIGHT JOINLEFT JOINに書き換え可能
  • 左から右へ入力するため、LEFT JOINのほうがユーザーにとって、より直感的
SQLのデータ結合

練習しましょう!

SQLのデータ結合

Preparing Video For Download...