您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

太多的Left Joins代码有smell吗?

太多的Left Joins代码有smell吗?

对于某些设计来说,这是一个完全合法的解决方案。

假设你有一个一对多的关系就像一个层次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(如果您只想弄清楚对应的记录在其他表中是否存在)。

有关性能的详细信息,请参见我的博客中的这篇文章

其他 2022/1/1 18:45:07 有486人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶