Szczegóły INNER JOIN

Łączenie danych w SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Szczegóły INNER JOIN

Diagram przedstawiający dwie tabele: left table i right table. Pasujące wartości id są oznaczone tymi samymi kolorami.

Łączenie danych w SQL

Szczegóły INNER JOIN

  • INNER JOIN wyszukuje rekordy obecne w obu tabelach, które pasują do siebie w danym polu
Diagram INNER JOIN na polu id

Diagram przedstawiający dwie tabele: left_table i right_table. Pasujące wartości id są oznaczone tymi samymi kolorami i połączone strzałkami.

Łączenie danych w SQL

Szczegóły INNER JOIN

Diagram INNER JOIN ON pole id

Diagram przedstawiający dwie tabele: left_table i right_table. Pasujące wartości id są oznaczone tymi samymi kolorami i połączone strzałkami. Rekordy nieistotne dla INNER JOIN są wyszarzone.

Łączenie danych w SQL

Szczegóły INNER JOIN

Diagram INNER JOIN ON pole id

Diagram przedstawiający dwie tabele: left_table i right_table. Wynik złączenia tabel jest pokazany po prawej stronie – zwracane są tylko rekordy z dopasowaniem w kolumnie id.

Łączenie danych w SQL

Schemat bazy danych leadership

Przywódcy światowi do 2024 r.: Schemat SQL przedstawiający trzy tabele w bazie danych leadership: presidents, prime_ministers i prime_minister_terms. Tabele presidents i prime_ministers można łączyć na polu country, a prime_ministers i prime_minister_terms – na polu prime_minister.

Łączenie danych w SQL

Tabela 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          |
Łączenie danych w SQL

Tabela prime_ministers

Tabela prime_ministers

Tabela prime_ministers z bazy danych leadership zawierająca trzy kolumny: country, continent i prime_minister.

Łączenie danych w SQL

Premierzy i prezydenci

Tabela presidents

Dwie tabele obok siebie: presidents i prime_ministers. Pasujące kolumny są wyróżnione kolorami.

Tabela prime_ministers

Dwie tabele obok siebie: presidents i prime_ministers. Pasujące kolumny są wyróżnione kolorami.

Łączenie danych w SQL

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

Uwaga. Format table.column_name jest wymagany przy wyborze kolumn występujących w obu tabelach, aby uniknąć błędu 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         |
Łączenie danych w SQL

Aliasowanie tabel

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

Aliasy można stosować w składni table.column_name w klauzulach SELECT i ON.

Łączenie danych w SQL

Użycie 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         |
Łączenie danych w SQL

Czas na ćwiczenia!

Łączenie danych w SQL

Preparing Video For Download...