RIGHT JOIN et FULL JOIN

Un RIGHT JOIN garde chaque ligne de la table de droite. Un FULL JOIN garde les lignes sans correspondance des deux tables.

Syntaxe

SELECT … FROM a RIGHT JOIN b ON a.key = b.key;
SELECT … FROM a FULL JOIN b ON a.key = b.key;
  • Lorsqu'une ligne n'a pas de correspondance, les colonnes de l'autre table valent NULL.

Exemple

SELECT c.last_name, o.order_id FROM customers AS c FULL JOIN orders AS o ON o.customer_id = c.customer_id;

Chaque commande et chaque client ; les côtés sans correspondance affichent NULL.

Tables utilisées : customers, orders. Essayez-le dans une leçon ci-dessous.

Erreurs courantes

  • Une condition sur la table de droite dans WHERE supprime les lignes NULL. Placez-la dans ON à la place.

Pratiquer