<tfoot id='crJYT'></tfoot>

        <legend id='crJYT'><style id='crJYT'><dir id='crJYT'><q id='crJYT'></q></dir></style></legend>
        <i id='crJYT'><tr id='crJYT'><dt id='crJYT'><q id='crJYT'><span id='crJYT'><b id='crJYT'><form id='crJYT'><ins id='crJYT'></ins><ul id='crJYT'></ul><sub id='crJYT'></sub></form><legend id='crJYT'></legend><bdo id='crJYT'><pre id='crJYT'><center id='crJYT'></center></pre></bdo></b><th id='crJYT'></th></span></q></dt></tr></i><div id='crJYT'><tfoot id='crJYT'></tfoot><dl id='crJYT'><fieldset id='crJYT'></fieldset></dl></div>
        • <bdo id='crJYT'></bdo><ul id='crJYT'></ul>

      1. <small id='crJYT'></small><noframes id='crJYT'>

      2. 是否有关于使用显式 ANSI JOIN 与隐式连接的 Oracle 官方建议?

        时间:2023-10-09
        • <bdo id='537dP'></bdo><ul id='537dP'></ul>

        • <legend id='537dP'><style id='537dP'><dir id='537dP'><q id='537dP'></q></dir></style></legend><tfoot id='537dP'></tfoot>

          <small id='537dP'></small><noframes id='537dP'>

                  <i id='537dP'><tr id='537dP'><dt id='537dP'><q id='537dP'><span id='537dP'><b id='537dP'><form id='537dP'><ins id='537dP'></ins><ul id='537dP'></ul><sub id='537dP'></sub></form><legend id='537dP'></legend><bdo id='537dP'><pre id='537dP'><center id='537dP'></center></pre></bdo></b><th id='537dP'></th></span></q></dt></tr></i><div id='537dP'><tfoot id='537dP'></tfoot><dl id='537dP'><fieldset id='537dP'></fieldset></dl></div>

                    <tbody id='537dP'></tbody>
                  本文介绍了是否有关于使用显式 ANSI JOIN 与隐式连接的 Oracle 官方建议?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  注意:我不是要您告诉我使用显式连接",而是要查找 Oracle 官方在该主题上的立场(如果有).

                  来自 Oracle 数据库文档(也出现在 9i 和 11g 文档中):

                  From Oracle database documentation (also appears in 9i and 11g documentations):

                  Oracle 建议您使用 FROM 子句 OUTER JOIN 语法而不是 Oracle 连接运算符.使用Oracle 连接运算符 (+) 受以下规则约束,并且限制 […]

                  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 […]

                  换句话说,Oracle 建议首选这两种形式中的第一种:

                  In other words, Oracle advises to prefer the first of these two forms:

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

                  但是,我从未在任何 Oracle 文档中找到建议最好使用这两种形式之一:

                  However, I have never found in any Oracle documentation a single recommendation to use preferably one of those two forms:

                  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 外连接的其他限制是 此处记录.

                  I haven't seen it if there is. The reason for preferring ANSI syntax for outer joins in particular (apart from the non-standarrd, Oracle-specific (+) symbol) is that more outer joins are expressible using the ANSI syntax. The restriction "ORA-01417: a table may be outer joined to at most one other table" applies to (+) outer joins but not to ANSI outer joins. Other restrictions on (+) that do not apply to ANSI outer joins are documented here.

                  一位备受尊敬的 Oracle 专家实际上建议坚持使用旧语法进行内部联接 - 请参阅 乔纳森刘易斯的博客.他在那里说 ANSI 连接在幕后转换为传统的 Oracle 连接.我不 100% 同意他的观点(我一般更喜欢 ANSI 加入我自己),但不会声称他对该主题的了解只有一小部分.

                  One highly respected Oracle expert actually recommends sticking to the old syntax for inner joins - see Jonathan Lewis's blog. He says there that ANSI joins are transformed to traditional Oracle joins under the covers anyway. I don't agree with him 100% (I prefer ANSI joins myself in general), but would not claim to have a fraction of his knowledge on the topic.

                  简而言之,ANSI 外连接在技术上优于旧的 (+) 连接,而内连接更多地只是风格问题.

                  In a nutshell, ANSI outer joins are technically superior to old (+) joins, whereas with inner joins it is more just a matter of style.

                  这篇关于是否有关于使用显式 ANSI JOIN 与隐式连接的 Oracle 官方建议?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:从一个表中选择,从另一个 id 链接的表中计数 下一篇:JOIN 和 GROUP_CONCAT 与三个表

                  相关文章

                  <small id='KQsu3'></small><noframes id='KQsu3'>

                  • <bdo id='KQsu3'></bdo><ul id='KQsu3'></ul>
                1. <i id='KQsu3'><tr id='KQsu3'><dt id='KQsu3'><q id='KQsu3'><span id='KQsu3'><b id='KQsu3'><form id='KQsu3'><ins id='KQsu3'></ins><ul id='KQsu3'></ul><sub id='KQsu3'></sub></form><legend id='KQsu3'></legend><bdo id='KQsu3'><pre id='KQsu3'><center id='KQsu3'></center></pre></bdo></b><th id='KQsu3'></th></span></q></dt></tr></i><div id='KQsu3'><tfoot id='KQsu3'></tfoot><dl id='KQsu3'><fieldset id='KQsu3'></fieldset></dl></div>

                    <legend id='KQsu3'><style id='KQsu3'><dir id='KQsu3'><q id='KQsu3'></q></dir></style></legend>
                    1. <tfoot id='KQsu3'></tfoot>