一、(+)为何意?
oracle中的(+)是一种特殊的用法,(+)表示外连接,并且总是放在非主表的一方。
二、举例
左外连接:
select A.a,B.a from A LEFT JOIN B ON A.b=B.b;
等价于
select A.a,B.a from A,B where A.b = B.b(+);
---------ps----------
A LEFT JOIN B:
A表是主表,所以(+)写在非主表B一方。查询结果为:A,B表匹配的行加上A表中有,B表中没有的行。
右外连接:
select A.a,B.a from A RIGHT JOIN B ON A.b=B.b;
等价于
select A.a,B.a from A,B where A.b (+) = B.b;
---------ps----------
A RIGHT JOIN B:
B表是主表,所以(+)写在非主表A一方。查询结果为:A,B表匹配的行加上B表中有,A表中没有的行。