Jak funguje INNER JOIN

Joining Data in SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Jak funguje INNER JOIN

Diagram znázorňující dvě tabulky: levou a pravou. Odpovídající hodnoty id jsou barevně odlišeny.

Joining Data in SQL

Jak funguje INNER JOIN

  • INNER JOIN hledá záznamy v obou tabulkách, které se shodují na daném poli
Diagram pro INNER JOIN na poli id

Diagram znázorňující dvě tabulky: left_table a right_table. Odpovídající hodnoty id jsou barevně odlišeny a propojeny šipkami.

Joining Data in SQL

Jak funguje INNER JOIN

Diagram pro INNER JOIN ON poli id

Diagram znázorňující dvě tabulky: left_table a right_table. Odpovídající hodnoty id jsou barevně odlišeny a propojeny šipkami. Záznamy, které INNER JOIN nezahrnuje, jsou zobrazeny ztlumeně.

Joining Data in SQL

Jak funguje INNER JOIN

Diagram pro INNER JOIN ON poli id

Diagram znázorňující dvě tabulky: left_table a right_table. Výsledek spojení je zobrazen vpravo – vrací pouze záznamy shodující se v sloupci id v obou tabulkách.

Joining Data in SQL

Schéma databáze leadership

Světoví lídři do roku 2024: Schéma SQL zobrazující tři tabulky v databázi leadership: presidents, prime_ministers a prime_minister_terms. Tabulky presidents a prime_ministers lze spojit přes pole country, tabulky prime_ministers a prime_minister_terms přes pole prime_minister.

Joining Data in SQL

Tabulka 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          |
Joining Data in SQL

Tabulka prime_ministers

Tabulka prime_ministers

Tabulka prime_ministers z databáze leadership obsahující tři sloupce: country, continent a prime_minister.

Joining Data in SQL

Prezidenti a premiéři

Tabulka presidents

Dvě tabulky vedle sebe: presidents a prime_ministers. Odpovídající sloupce jsou barevně zvýrazněny.

Tabulka prime_ministers

Dvě tabulky vedle sebe: presidents a prime_ministers. Odpovídající sloupce jsou barevně zvýrazněny.

Joining Data in SQL

Náš první 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;

Poznámka. Formát tabulka.název_sloupce je nutný při výběru sloupců existujících v obou tabulkách, aby nedošlo k chybě 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         |
Joining Data in SQL

Aliasy tabulek

--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 lze použít v syntaxi tabulka.název_sloupce v klauzulích SELECT a ON.

Joining Data in SQL

Použití 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         |
Joining Data in SQL

Pojďme cvičit!

Joining Data in SQL

Preparing Video For Download...