加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle官方有关使用显式ANSI JOINs和隐式联接的建议吗?

发布时间:2020-12-12 13:48:34 所属栏目:百科 来源:网络整理
导读:注意:我不是要你告诉我“使用明确的联接”,而是寻找甲骨文的官方职位,如果有的话. From Oracle database documentation(也出现在9i和11g文件中): Oracle recommends that you use the FROM clause OUTER JOIN syntax rather than the Oracle join operator
注意:我不是要你告诉我“使用明确的联接”,而是寻找甲骨文的官方职位,如果有的话.

From Oracle database documentation(也出现在9i和11g文件中):

Oracle recommends that you use the FROM clause OUTER JOIN syntax
rather than the Oracle join operator. Outer join queries that use the
Oracle join operator (+) are subject to the following rules and
restrictions […]

换句话说,甲骨文建议更喜欢这两种形式中的第一种:

FROM a LEFT JOIN b ON b.x = a.x
vs
FROM a,b WHERE b.x(+) = a.x

然而,我从来没有在任何Oracle文档中找到一个建议,最好使用这两种形式之一:

FROM a INNER JOIN b ON b.x = a.x
vs
FROM a,b WHERE b.x = a.x

有没有一个我错过的段落?

如果有的话我没有看到优选外部联接的ANSI语法(除了非标准,特定于Oracle的()符号)的原因是使用ANSI语法可以更好地表达外部联接.限制“ORA-01417:表可能外部连接到最多一个其他表”适用于()外连接,但不适用于ANSI外连接.不适用于ANSI外部联接的其他对()的限制是 documented here.

一位受人尊敬的Oracle专家实际上建议坚持使用内部联接的旧语法 – 参见Jonathan Lewis’s blog.他表示,ANSI连接将转换为传统的Oracle连接.我不同意他100%(我更喜欢ANSI加入我自己一般),但不会声称有一小部分他的知识的话题.

简而言之,ANSI外部连接在技术上优于old()连接,而内部连接更符合风格.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读