Schlüsselwort
LEFT JOIN
Jede Zeile der linken Tabelle behalten, auch wenn rechts nichts passt.
SELECT c.email, o.order_id
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.customer_id;
Ein Kunde ohne Bestellungen erscheint trotzdem, mit NULL in den Spalten der Bestellung. Eine Bedingung auf die rechte
Tabelle gehört in das ON; im WHERE entfernt sie diese Zeilen wieder und macht aus dem Join einen inneren.
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 |