一部の設計では、これは完全に正当なソリューションです。
Customer のような 1 対多の関係の階層があるとします。 - Order - Basket - Item - Price など、どのレベルでも未記入の可能性があります:Customer Orderがない可能性があります 、Order Basketを持たないことはできません など
この場合、次のようなものを発行します:
SELECT *
FROM Customer c
LEFT OUTER JOIN
Order o
ON o.CustomerID = c.ID
LEFT OUTER JOIN
Basket b
ON b.OrderID = c.ID
…
場合によっては非効率的であり、 EXISTS に置き換えられる可能性があることに注意してください または NOT EXISTS (対応するレコードが存在するか、他のテーブルに存在しないかだけを把握したい場合)。
パフォーマンスの詳細については、私のブログのこの記事を参照してください:
- 不完全な注文の検索
-
LEFT JOINを置き換えることによる利点 's withNOT EXISTS