複数の結合

SQLのデータ結合

Maham Faisal Khan

Senior Content Developer, DataCamp

結合を重ねて使う

SELECT *
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id

INNER JOIN another_table ON left_table.id = another_table.id;

注意:使用例によっては、left_tableまたはright_tableON句で使用できます。

SQLのデータ結合

結合を重ねて使う

世界の指導者データベースのprime_minister_termsテーブル

首相任期テーブルには、首相の名前と就任年の2つの列が表示されています。

SQLのデータ結合

1つ目の結合

SELECT p1.country, p1.continent, 
       president, prime_minister
FROM prime_ministers as p1
INNER JOIN presidents as p2
USING(country);
| country  | continent     | president               | prime_minister   |
| -------- | ------------- | ----------------------- | ---------------- |
| Egypt    | Africa        | Abdel Fattah el-Sisi    | Mostafa Madbouly |
| Portugal | Europe        | Marcelo Rebelo de Sousa | Luís Montenegro  |
| Pakistan | Asia          | Asif Ali Zardari        | Shehbaz Sharif   |
| India    | Asia          | Droupadi Murmu          | Narendra Modi    |
SQLのデータ結合

結合を連結する

前のスライドでの結果(大統領と首相)と新しいテーブル首相任期を示す図。 結果は5列で構成されています: country、continent、president、prime_minister、pm_start。

SQLのデータ結合

結合を連結する

-- SQL query for chaining inner joins
SELECT 
    p1.country, 
    p1.continent, 
    president, 
    prime_minister, 
    pm_start
FROM prime_ministers as p1
INNER JOIN presidents as p2
USING(country)

INNER JOIN prime_minister_terms as p3 USING(prime_minister);
SQLのデータ結合

ON:何を結合させるか

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id;
INNER JOIN ONid フィールドの図

一致している列が1つあるとき、左側のテーブルの結合フィールドが、右側のテーブルの結合フィールドで複数の一致を見つける場合があることを示す図。 結果セットには、左テーブルと一致した右テーブルの各 id ごとに複数のレコードがあります。

SQLのデータ結合

複数のキーで結合する

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id
    AND left_table.date = right_table.date;
INNER JOIN ONid AND date フィールドの図

複数の結合フィールドを使用すると、結果で返されるデータ数を減らすことができることを示す図。 ここでは、id と date の両方を使って 2 つのテーブルを結合します。

SQLのデータ結合

練習しましょう!

SQLのデータ結合

Preparing Video For Download...