Anti-jointure

Une anti-jointure sélectionne les lignes d'une table qui n'ont aucune correspondance dans une autre, par exemple les clients sans commande. On l'écrit avec LEFT JOIN ... WHERE droite.id IS NULL ou avec NOT EXISTS. Éviter NOT IN si la sous-requête peut renvoyer des NULL.

Exemple

SELECT c.* FROM clients c
LEFT JOIN commandes o ON o.client_id = c.id
WHERE o.id IS NULL;

Notions voisines

Tout le glossaire