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