Vícenásobné joiny

Joining Data in SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Joiny na joiny

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;

Poznámka. V závislosti na případu použití lze v klauzuli ON použít left_table nebo right_table.

Joining Data in SQL

Joiny na joiny

Tabulka prime_minister_terms z naší databáze světových lídrů

Tabulka prime_minister_terms se dvěma sloupci: jméno premiéra a rok nástupu do funkce.

Joining Data in SQL

Co spojovat jako první?

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

Řetězení joinů

Diagram znázorňující výslednou sadu spojení z předchozího snímku (presidents a prime_ministers) s novou tabulkou prime_minister_terms. Výsledek obsahuje pět sloupců: country, continent, president, prime_minister a pm_start.

Joining Data in SQL

Řetězení joinů

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

Podle čeho provádíme join?

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id;
Diagram pro INNER JOIN ON pole id

Diagram znázorňující, že při spojování podle jednoho sloupce může jeden záznam z levé tabulky odpovídat více záznamům v pravé tabulce. Výsledná sada obsahuje více záznamů pro každé id z pravé tabulky, které se shodovalo s levou tabulkou.

Joining Data in SQL

Spojování podle více klíčů

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id
    AND left_table.date = right_table.date;
Diagram pro INNER JOIN ON polích id A date

Diagram znázorňující, že počet vrácených záznamů lze snížit použitím více spojovacích polí. Zde jsou k propojení tabulek použity pole id i date.

Joining Data in SQL

Pojďme si procvičit!

Joining Data in SQL

Preparing Video For Download...