Mot-clé
LEFT JOIN
Garder toutes les lignes de la table de gauche, même sans correspondance à droite.
SELECT c.email, o.order_id
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.customer_id;
Un client sans commande apparaît quand même, avec NULL dans les colonnes de la commande. Une condition
sur la table de droite va dans ON ; dans WHERE, elle retire à nouveau ces lignes et la jointure
redevient interne.
SELECT c.name, COUNT(p.product_id) AS products FROM categories c LEFT JOIN products p ON p.category_id = c.category_id GROUP BY c.name ORDER BY products, c.name LIMIT 6;
| name | products |
|---|---|
| Accessories | 0 |
| Coffee | 0 |
| Drinks | 0 |
| Gift boxes | 0 |
| Tea | 0 |
| Coffee gift boxes | 2 |