假设你有一个一对多的关系就像一个层次Customer
- Order
- Basket
-Item
-Price
等,这可以在任何级别的空缺:一个Customer
可以没有Orders
,一个Order
可以没有Baskets
,等等。
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
(如果您只想弄清楚对应的记录在其他表中是否存在)。