PaliSkill
SQL Intermédiaire

Leçon 4 / 9 — Chapitre 2: Jointures avancées et combinées

Jointures chaînées : combiner 3 tables

Rien n'empêche d'enchaîner plusieurs JOIN dans une même requête, pour relier plus de deux tables entre elles.

SELECT p.nom, c.quantite, l.transporteur, l.statut
FROM produits p
JOIN commandes c ON p.id = c.produit_id
JOIN livraisons l ON c.id = l.id;

Chaque JOIN s'applique au résultat du précédent : produits est d'abord jointe à commandes, puis ce résultat intermédiaire est joint à livraisons. Ici, les trois jointures sont des INNER JOIN : seules les lignes qui trouvent une correspondance à chaque étape survivent.

Sur nos données, seules les commandes d'id 1, 3 et 4 ont une livraison associée (voir la leçon précédente) — les commandes 2 et 5 n'en ont aucune, elles disparaissent donc du résultat, même si elles avaient bien un produit correspondant. Le résultat final compte 3 lignes : Cahier/3/Rapido/livree, Savon/5/Rapido/livree, Jus/1/Expressa/en_cours.

À retenir :

  • Une requête peut enchaîner plusieurs JOIN : chaque nouvelle jointure s'applique au résultat déjà obtenu, pas à la table d'origine seule.
  • Avec des INNER JOIN en chaîne, une ligne ne survit que si elle trouve une correspondance à chaque étape de la chaîne.
  • Une ligne qui échoue à une seule étape de la chaîne (ici, une commande sans livraison) disparaît du résultat final, même si les étapes précédentes avaient réussi pour elle.

À vous de jouer : remplacez le second JOIN par un LEFT JOIN livraisons l ON c.id = l.id et déterminez combien de lignes le résultat contiendrait alors.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 80 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès