Es una solución perfectamente legítima para algunos diseños.
Digamos que tiene una jerarquía de relaciones de uno a muchos como Customer - Order - Basket - Item - Price , etc., que se pueden vaciar en cualquier nivel:un Customer puede no tener Orders , un Order no puede tener Baskets , etc.
En este caso, emite algo como:
SELECT *
FROM Customer c
LEFT OUTER JOIN
Order o
ON o.CustomerID = c.ID
LEFT OUTER JOIN
Basket b
ON b.OrderID = c.ID
…
Tenga en cuenta que puede ser ineficiente en algunos casos y puede ser reemplazado por EXISTS o NOT EXISTS (si solo desea averiguar si los registros correspondientes existen o no existen en otras tablas).
Consulte este artículo en mi blog para obtener detalles sobre el rendimiento:
- Encontrar pedidos incompletos
- cómo beneficiarse de reemplazar
LEFT JOIN's conNOT EXISTS