Oracle: SELECT * FROM tablea a, tableb b WHERE a.fielda(+)=b.fieldb -- (+)是什么意思?

10

我不明白括号中的加号(+)有何作用!(我通过正在维护的应用程序的自动更新过程“继承”了该语句。)

这是 Oracle 特定的运算符吗?它有一个特殊的名称可以搜索吗? 在 Google 上搜索带括号的加号有点困难 :)

1个回答

14

它是一个外连接操作符(老派写法)。


那么它相当于 SELECT * FROM tablea a OUTER JOIN tableb b ON a.fielda=b.fieldb 吗? - ACEG
1
"WHERE t1.col1 = t2.col2(+)" 相当于 "t1 左连接 t2 on t1.col1 = t2.col2"。 - DCookie
3
@Cristina -- 这相当于在 <table> 上执行 LEFT OUTER JOIN 操作,连接条件为 (...)。http://www.dba-oracle.com/tips_oracle_left_outer_join.htm - Paul W
3
是的,据我所知,这是特定于Oracle的。 - DCookie
@Cristina。没问题!我同意DCookie的观点——据我所知,它是针对Oracle特定的。 - Paul W
@DCookie 谢谢您的额外解释! - ACEG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接