Jointures multiples

Jointure de données en SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Joints sur joints

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;

Remarque : Selon le cas d'utilisation, left_table ou right_table peut être utilisé dans la clause ON.

Jointure de données en SQL

Joints sur joints

Le tableau prime_minister_terms de notre base de données des dirigeants mondiaux

Le tableau prime_minister_terms, avec deux colonnes : le nom du premier ministre et l'année de son entrée en fonction

Jointure de données en SQL

Que faut-il rejoindre en premier ?

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    |
Jointure de données en SQL

Enchaînement de jointures complètes

Diagramme montrant le résultat de la fusion de la diapositive précédente (présidents et premiers ministres) avec un nouveau tableau, prime_minister_terms. Le résultat se compose de cinq colonnes : pays, continent, président, premier ministre et pm_start.

Jointure de données en SQL

Enchaînement de jointures complètes

-- 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);
Jointure de données en SQL

Qu'est-ce que nous rejoignons ON?

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id;
Diagramme pour un INNER JOIN ON le champ id

Un diagramme montrant que lors de la mise en correspondance sur une colonne, le champ de jointure du tableau de gauche trouve parfois plusieurs correspondances dans le champ de jointure du tableau de droite. Le jeu de résultats contient plusieurs enregistrements pour chaque identifiant du tableau de droite qui correspond au tableau de gauche

Jointure de données en SQL

Jointure sur plusieurs clés

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id
    AND left_table.date = right_table.date;
Diagramme pour un INNER JOIN ON le champ id AND date

Un diagramme montrant que le nombre d'enregistrements renvoyés dans l'ensemble de résultats peut être réduit si plusieurs champs de jointure sont utilisés. Ici, l'identifiant et la date sont utilisés pour joindre les deux tableaux.

Jointure de données en SQL

Passons à la pratique !

Jointure de données en SQL

Preparing Video For Download...