INNER JOIN (内部結合)の基本

SQLのデータ結合

Maham Faisal Khan

Senior Content Developer, DataCamp

INNER JOIN(内部結合)の基本

2つのテーブルを示す図:左側のテーブルと右側のテーブル。 左と右のテーブルで一致する id 値は、同じ色で表示されます。

SQLのデータ結合

INNER JOIN(内部結合)の基本

  • INNER JOINは、指定されたフィールドで一致する行を両方のテーブルから探します
INNER JOINid フィールドの図

2つのテーブルを示す図:左テーブルと右テーブル。 左側と右側のテーブルで一致する id 値は、同じ色で表示され、矢印でつながれています。

SQLのデータ結合

INNER JOIN(内部結合)の基本

INNER JOIN ONid フィールドの図

2つのテーブルを示す図:左テーブルと右テーブル。 左側テーブルと右側テーブルで一致するID値を同じ色にし、矢印でつないでいます。 INNER JOIN に関係のないレコードはフェードアウトされています。

SQLのデータ結合

INNER JOIN(内部結合)の基本

INNER JOIN ONid フィールドの図

2つのテーブルを示す図:左テーブルと右テーブル。 2つのクエリを結合した結果が右側に表示され、両方のテーブルで id 列が一致したレコードのみが返されます。

SQLのデータ結合

指導者データベーススキーマ

世界の指導者一覧(~2024年): 指導者データベースの3つのテーブル(大統領、首相、首相任期)を示すSQLスキーマ。大統領と首相は国名フィールドで結合でき、首相と首相任期は首相名フィールドで結合できます。

SQLのデータ結合

大統領(Presidents)テーブルを見る

SELECT * 
FROM presidents;
| country  | continent     | president               |
|----------|---------------|-------------------------|
| Egypt    | Africa        | Abdel Fattah el-Sisi    |
| Portugal | Europe        | Marcelo Rebelo de Sousa | 
| USA      | North America | Joe Biden               |
| Uruguay  | South America | Luis Lacalle Pou        |
| Pakistan | Asia          | Asif Ali Zardari        |
| Chile    | South America | Gabriel Boric           |
| India    | Asia          | Droupadi Murmu          |
SQLのデータ結合

首相(Prime Ministers)テーブルを見る

prime_ministers テーブル

指導者データベースの首相テーブルには、国名、大陸、首相名の3つの列があります。

SQLのデータ結合

首相テーブルと大統領テーブルを結合する

presidents テーブル

大統領と首相一覧、2つのテーブルが並んで表示されており、2つの表で一致する列は色分けされています。

prime_ministers テーブル

大統領と首相一覧、2つのテーブルが並んで表示されており、2つの表で一致する列は色分けされています。

SQLのデータ結合

はじめてのINNER JOIN

--Inner join of presidents and prime_ministers, joining on country

SELECT prime_ministers.country, prime_ministers.continent, prime_minister, president
FROM presidents
INNER JOIN prime_ministers
ON presidents.country = prime_ministers.country;

注意: 両方のテーブルに存在する列を選択する場合は、SQLエラーを防ぐためにtable.column_name形式を使用してください。

| country        | continent | prime_minister   | president               |
|----------------|-----------|------------------|-------------------------|
| Egypt          | Africa    | Mostafa Madbouly | Abdel Fattah el-Sisi    |
| Portugal       | Europe    | Luís Montenegro  | Marcelo Rebelo de Sousa |
| Pakistan       | Asia      | Shehbaz Sharif   | Asif Ali Zardari        |
| India          | Asia      | Narendra Modi    | Ram Nath Kovind         |
SQLのデータ結合

テーブルの別名(エイリアス)

--Inner join of presidents and prime_ministers, joining on country

SELECT p2.country, p2.continent, prime_minister, president
FROM presidents AS p1 INNER JOIN prime_ministers AS p2
ON p1.country = p2.country;
| country        | continent | prime_minister   | president               |
|----------------|-----------|------------------|-------------------------|
| Egypt          | Africa    | Mostafa Madbouly | Abdel Fattah el-Sisi    |
| Portugal       | Europe    | Luís Montenegro  | Marcelo Rebelo de Sousa |
| Pakistan       | Asia      | Shehbaz Sharif   | Asif Ali Zardari        |
| India          | Asia      | Narendra Modi    | Ram Nath Kovind         |

エイリアスは、SELECT句とON句のtable.column_name構文で使用できます。

SQLのデータ結合

USING の使い方

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

練習しましょう!

SQLのデータ結合

Preparing Video For Download...