SQL Dojo Bêta
Technique

Anti-jointure

Les lignes d'une table sans correspondance dans une autre : les clients qui n'ont jamais commandé.
SELECT c.*
FROM customers c
WHERE NOT EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.customer_id);

Même résultat avec LEFT JOIN … WHERE o.customer_id IS NULL. Évitez NOT IN (sous-requête) : un seul NULL dans la sous-requête et il ne renvoie plus rien.

SELECT c.customer_id, c.first_name, c.last_name
FROM customers c
WHERE NOT EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.customer_id)
ORDER BY c.customer_id
LIMIT 5;
customer_idfirst_namelast_name
4ElsaRichard
5LouisMartinez
7TomDupont
9JadeMeier
12SachaDumont
L’essayer en Randori