Pro některé návrhy je to naprosto legitimní řešení.
Řekněme, že máte hierarchii vztahů jedna k mnoha, jako je Customer - Order - Basket - Item - Price , atd., které lze nevyplnit na jakékoli úrovni:Customer nemusí mít žádné Orders , Order nemůže mít žádné Baskets , atd.
V tomto případě zadáte něco jako:
SELECT *
FROM Customer c
LEFT OUTER JOIN
Order o
ON o.CustomerID = c.ID
LEFT OUTER JOIN
Basket b
ON b.OrderID = c.ID
…
Upozorňujeme, že v některých případech může být neefektivní a může být nahrazen výrazem EXISTS nebo NOT EXISTS (pokud chcete pouze zjistit, zda odpovídající záznamy existují nebo neexistují v jiných tabulkách).
Podrobnosti o výkonu naleznete v tomto článku na mém blogu:
- Nalezení nekompletních objednávek
- jak těžit z nahrazení
LEFT JOIN's sNOT EXISTS