PaliSkill
SQL Intermédiaire

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 JOIN garde 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