Palabra clave
LEFT JOIN
Conservar todas las filas de la tabla de la izquierda, aunque nada coincida a la derecha.
SELECT c.email, o.order_id
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.customer_id;
Un cliente sin pedidos sigue apareciendo, con NULL en las columnas del pedido. Una condición sobre la tabla de la derecha
va en ON; en WHERE vuelve a eliminar esas filas y convierte el JOIN en uno interno.
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 |