Leçon 5 / 9 — Chapitre 1: Jointures fondamentales
FULL OUTER JOIN : garder toutes les lignes des deux tables
FULL OUTER JOIN garde toutes les lignes des deux tables, avec ou sans correspondance de chaque côté — combinaison de LEFT JOIN et RIGHT JOIN.
SELECT p.nom, c.quantite
FROM produits p
FULL OUTER JOIN commandes c ON p.id = c.produit_id;
Sur nos deux tables, ce résultat est identique à celui du LEFT JOIN (7 lignes), car chaque ligne de commandes a toujours un produit_id correspondant — aucune commande orpheline.
La différence se verrait si une commande référençait un produit_id inexistant dans produits : un LEFT JOIN produits → commandes ne la ferait jamais apparaître, puisqu'elle part de la liste des produits et qu'une commande orpheline n'est rattachée à aucun d'eux. Un FULL OUTER JOIN l'inclurait quand même, avec p.nom à NULL.
À retenir :
FULL OUTER JOINgarde toutes les lignes des deux tables, avec ou sans correspondance de chaque côté.- Sur des données sans ligne orpheline, son résultat est identique à celui d'un LEFT JOIN ou d'un RIGHT JOIN équivalent.
- La différence n'apparaît que si une ligne, d'un côté ou de l'autre, n'a strictement aucune correspondance.
À vous de jouer : dans un bac à sable SQL, ajoutez une commande avec un produit_id qui n'existe pas dans produits, et comparez ce que LEFT JOIN et FULL OUTER JOIN en font.
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