【问题标题】:What does (+) mean in SQLPlus? [duplicate]SQLPlus 中的 (+) 是什么意思? [复制]
【发布时间】:2013-08-20 12:59:49
【问题描述】:

我刚刚偶然发现了一个使用(+) 的SQL+-Query。我以前从未使用过 SQL+,也从未见过这样的事情。我试图询问谷歌,但我找不到任何有用的东西,因为谷歌显然过滤了“(+)”并忽略了它......

例子:

[...]
where [...] 
    AND 16791688 = T7mm.child_fielddef_id  (+)  
    AND T7mm.parent_dbid = T7.dbid  (+) 
    AND T1.dbid <> 0 [...]

【问题讨论】:

  • 查看 Oracle 文档以了解联接
  • 我建议使用symbolhound.com 搜索类似的内容,请参阅the results
  • @ConradFrix 可能,尽管我在 SO 上搜索它并没有找到那个特定的问题。无论如何感谢您的启发:)
  • 如果您使用的 Oracle 版本支持左连接,最好使用左连接重写。
  • Vince - 查看来自 Conrad 的链接,它将回答您的问题。基本上 (+) 是外连接的旧语法。另请注意,它是 Oracle 的东西,而不是 SQLPlus 的东西。

标签: sql oracle


【解决方案1】:

这是OUTER JOIN 的 Oracle 特定快捷方式

【讨论】:

  • hmmmm...虽然(+) 用于外连接,但我不会将其描述为正常意义上的shortcut,即不能简单地使用代替OUTER JOIN,因为它的语法不同。
【解决方案2】:

它使连接成为外连接而不是内连接:

SELECT
    A.*,
    B.*
FROM
    A,
    B
WHERE
    A.ID = B.ID(+)

相当于:

SELECT
    A.*,
    B.*
FROM
    A
    LEFT JOIN B ON A.ID = B.ID

(+) 表示法是用于 SQL 查询的旧 Oracle 语法。现在通常将 ANSI 标准与 LEFT JOIN 关键字一起使用被视为最佳实践

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 2015-07-15
    • 2018-07-17
    • 2012-08-13
    • 2019-09-12
    • 2015-01-22
    • 2011-04-16
    • 1970-01-01
    相关资源
    最近更新 更多