问题描述
嗨,汤姆,
我一直试图得到一个问题的答案,这个问题说: “为什么甲骨文有,左和右的外部连接,当我们可以通过使用它们中的任何一个通过交换表的位置来解决这个目的。”
不幸的是,我在任何地方都没有找到令人满意的答案,或者也许我没有找到合适的答案。
您能否告诉我是否有任何技术原因可以使左右外部连接分开,或者如何?
谢谢。
我一直试图得到一个问题的答案,这个问题说: “为什么甲骨文有,左和右的外部连接,当我们可以通过使用它们中的任何一个通过交换表的位置来解决这个目的。”
不幸的是,我在任何地方都没有找到令人满意的答案,或者也许我没有找到合适的答案。
您能否告诉我是否有任何技术原因可以使左右外部连接分开,或者如何?
谢谢。
专家解答
主要原因是我们需要满足ANSI标准,该标准当然同时具有。
但是还有一些其他的事情要考虑
-每个子查询都可以用联接替换,但这并不意味着我们应该取消子查询。他们协助将SQL构架为问题的答案
-如果我们只剩下 (说),那么有时候这意味着SQL中的表顺序对于下一个维护您的代码的人来说不太直观
-左和右对于交换两个表来说是微不足道的,但是对于一个以上的表来说要少一些,因此同时拥有两个表都有帮助
-对于那些没有成本优化器的数据库,联接中表的顺序可以定义执行路径,因此左右都很有用。
但是还有一些其他的事情要考虑
-每个子查询都可以用联接替换,但这并不意味着我们应该取消子查询。他们协助将SQL构架为问题的答案
-如果我们只剩下 (说),那么有时候这意味着SQL中的表顺序对于下一个维护您的代码的人来说不太直观
-左和右对于交换两个表来说是微不足道的,但是对于一个以上的表来说要少一些,因此同时拥有两个表都有帮助
-对于那些没有成本优化器的数据库,联接中表的顺序可以定义执行路径,因此左右都很有用。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




