Усе про INNER JOIN

Об'єднання даних у SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Усе про INNER JOIN

Схема з двома таблицями: ліва та права. Однакові значення id у лівій і правій таблицях позначено однаковими кольорами.

Об'єднання даних у SQL

Усе про INNER JOIN

  • INNER JOIN шукає записи в обох таблицях, що збігаються за заданим полем
Схема для INNER JOIN за полем id

Схема з двома таблицями: left_table і right_table. Однакові значення id у лівій і правій таблицях позначено однаковими кольорами та з'єднано стрілками.

Об'єднання даних у SQL

Усе про INNER JOIN

Схема для INNER JOIN ON поле id

Схема з двома таблицями: left_table і right_table. Однакові значення id у лівій і правій таблицях позначено однаковими кольорами та з'єднано стрілками. Записи, що не цікавлять INNER JOIN, приглушені.

Об'єднання даних у SQL

Усе про INNER JOIN

Схема для INNER JOIN ON поле id

Схема з двома таблицями: left_table і right_table. Результат з'єднання показано праворуч: повертаються лише записи, що збіглися за стовпцем id в обох таблицях.

Об'єднання даних у SQL

Схема бази даних leadership

Лідери світу станом до 2024 року: Схема SQL із трьома таблицями в базі leadership: presidents, prime_ministers і prime_minister_terms. presidents і prime_ministers можна з'єднати за полем country, а prime_ministers і prime_minister_terms — за полем prime_minister.

Об'єднання даних у 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 із бази leadership з трьома стовпцями: country, continent і prime_minister.

Об'єднання даних у SQL

Прем'єр-міністри, знайомтеся з президентами

Таблиця presidents

Дві таблиці поруч: presidents і prime_minister. Відповідні стовпці виділено кольором у обох таблицях.

Таблиця prime_ministers

Дві таблиці поруч: presidents і prime_minister. Відповідні стовпці виділено кольором у обох таблицях.

Об'єднання даних у 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;

Примітка. Формат table.column_name слід використовувати під час вибору стовпців, що є в обох таблицях, щоб уникнути помилки SQL.

| 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         |

Псевдоніми можна використовувати у синтаксисі table.column_name у секціях SELECT і ON.

Об'єднання даних у 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...