Jointures multiples

Jointure de données dans SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Jointures sur des jointures

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, il est possible d’utiliser left_table ou right_table dans la clause ON.

Jointure de données dans SQL

Jointures sur des jointures

La table prime_minister_terms de notre base de données des dirigeants mondiaux

La table 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 dans SQL

Que faut-il joindre 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 dans SQL

Enchaînement de jointures

Diagramme montrant le résultat de la jointure de la diapositive précédente (tables presidents et prime_ministers) avec une nouvelle table, prime_minister_terms. Le résultat se compose de cinq colonnes : country, continent, president, prime_minister et pm_start.

Jointure de données dans SQL

Enchaînement de jointures

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

Le champ de jointure et la clause ON

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id;
Diagramme d’une jointure interne sur le champ id

Un diagramme montrant que lors d’une jointure, une valeur du champ de jointure dans la table de gauche peut correspondre à plusieurs enregistrements de la table de droite. L’ensemble de résultats contient plusieurs enregistrements pour chaque valeur du champ id de la table de droite correspondant à la table de gauche.

Jointure de données dans 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 d’une jointure interne sur les champs id et 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, les champs id et date sont utilisés pour joindre les deux tables.

Jointure de données dans SQL

Passons à la pratique !

Jointure de données dans SQL

Preparing Video For Download...