在Oracle中,(+)表示JOIN中的“可选”表。 所以在你的查询中,
select a.id, b.id, a.col_2, b.col_2, ... from a,b where a.id=b.id(+)
这是一个左'外'加'B'表与'一个表。 就像现代的左连接查询一样。 (它将返回'a'表的所有数据,而不会丢失在另一边的数据可选表'b'可以丢失他的数据)
select a.id, b.id, a.col_2, b.col_2, ... from a Left join b ON a.id=b.id
要么
select a.id, b.id, a.col_2, b.col_2, ... from a Left join b using(id)
现在如果你删除(+),那么这将是正常的内部连接查询,
select a.id, b.id, a.col_2, b.col_2, ... from a,b where a.id=b.id
它只会返回所有'a'和'b'表'id'值相同的数据,意味着通用部分。
额外:如果你想让你的查询作为正确的join旧的格式或现代,那么它将显示为如下所示:
旧:
select a.id, b.id, a.col_2, b.col_2, ... from a,b where a.id(+)=b.id
现代:
select a.id, b.id, a.col_2, b.col_2, ... from a Right join b ON a.id=b.id
要么
select a.id, b.id, a.col_2, b.col_2, ... from a Right join b using(id)
参考和帮助:
左外部在Oracle 11g中使用+符号join