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

转载于:https://www.cnblogs.com/hider/p/10140689.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值