我总是告诉新人,记住旧式Oracle外连接语法的一种简单方法是
(+)标志位于您认为应该在的位置的另一侧。
左连接:
select * from foo, bar
where foo.id = bar.id(+)
右连接:
select * from foo, bar
where foo.id(+) = bar.id
我确定我在大学里学到了这一点,但是在两边都有(+)标志的目的是什么?它是否只是表示“即使另一侧的那些行在这一侧也不匹配”?但那似乎太复杂了。选择“(+)”并将其放在没有匹配的一侧的目的是什么?
答案 0 :(得分:10)
(+)
标识外部加入的表。我教授的方式是,(+)
表示该表中缺少必须添加新NULL
行的行。
如果查看在LEFT OUTER JOIN
成为ANSI标准一部分之前支持的各种数据库的alternate left outer join syntaxes,则专有运算符通常应用于“缺少”行的表。 DB2 also supports the (+)
operator for outer joins与Oracle的做法相同。
答案 1 :(得分:-1)
简单...这是一个完整的外部连接。 就是这样,伙计们
这样你就有了一个集合 A 和另一个集合 B 之间的完整连接集: