Meerdere joins

Data joinen in SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Joins op joins

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;

Opmerking. Afhankelijk van de use case, kun je left_table of right_table gebruiken in de ON-clausule.

Data joinen in SQL

Joins op joins

De tabel prime_minister_terms uit onze database van wereldleiders

De tabel 'prime_minister_terms' heeft twee kolommen: de naam van de premier en het jaar waarin deze de functie begon.

Data joinen in SQL

Wat moet je eerst joinen?

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

Joins aaneenschakelen

Een diagram dat laat zien wat er gebeurt als je de resultaten van de vorige dia (presidents en prime_ministers) samenvoegt met een nieuwe tabel, prime_minister_terms. Het resultaat bestaat uit vijf kolommen: country, continent, president, prime_minister en pm_start.

Data joinen in SQL

Joins aaneenschakelen

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

Waar joinen we ON?

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id;
Schema voor een INNER JOIN ON het veld id

Een diagram dat laat zien dat als je op één kolom zoekt, het veld uit de linkertabel soms meerdere overeenkomsten vindt in het veld uit de rechtertabel. De resultaten hebben meerdere records voor elke id in de rechtertabel die overeenkomen met de linkertabel.

Data joinen in SQL

Op meerdere keys joinen

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id
    AND left_table.date = right_table.date;
Schema voor een INNER JOIN ON het veld id AND date'

Een diagram dat laat zien dat het aantal records in de resultatenlijst kan worden verminderd als je meerdere joining-velden gebruikt. Hier worden zowel id als datum gebruikt om de twee tabellen samen te voegen.

Data joinen in SQL

Laten we oefenen!

Data joinen in SQL

Preparing Video For Download...