什么类型的连接是'......其中A.ID = B.ID(+)'

zun*_*arz 10 sql oracle plsql join oracle11g

我遇到过这样的代码,我需要使用ANSI标准重新编写,我想确保我保持连接正确.那么,这是什么惯例?

使用此约定的其他类型连接的语法是什么?

使用这个约定,(+) 总是在表达式的右边?

我在哪里可以了解更多相关信息?

Mic*_*ski 9

在Oracle语法中,这表示a LEFT OUTER JOIN,右侧是可选的(可为空).如果+是在左侧A.ID,那将是一个RIGHT OUTER JOIN.这个语法(我相信)已被ISO SQL 99弃用,但仍保留在Oracle中.

它相当于这个首选语法:

SELECT
 A.ID,
 B.somecol
FROM A LEFT OUTER JOIN B ON A.ID = B.ID
Run Code Online (Sandbox Code Playgroud)