Oracle学习笔记:外连接(+)的用法

时间:2023-03-09 06:26:48
Oracle学习笔记:外连接(+)的用法

  Oracle中常用 left join 和 right join 来进行外连接,同时,oracle也支持 (+) 的特殊用法,也是表示外连接,并且总是放在非主表的一方。

  例如:

  左外连接:

select a.id,b.id
from a
left join b
on a.id = b.id;

  等价于:

select a.id, b.id
from a,b
where a.id = b.id(+);

  同理,右外连接

select a.id,b.id
from a
right join b
on a.id = b.id;

  等价于:

select a.id, b.id
from a,b
where a.id(+) = b.id;

  注意:

1.(+)操作符只能出现在WHERE子句中,并且不能与OUTER JOIN语法同时使用。

2.当使用(+)操作符执行外连接时,如果在WHERE子句中包含有多个条件,则必须在所有条件中都包含(+)操作符。

3.(+)操作符只适用于列,而不能用在表达式上。

4.(+)操作符不能与OR和IN操作符一起使用。

5.(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。

  left/right join 和 (+) 的区别:

1.效率上没区别

2.left join 可读性高、功能更全面、通用性强、而且是新标准

3.建议使用left join


END 2018-12-18 22:52:22