oracle 内、外连接

一直以来,就知道有个内连接(inner join),外连接(left outer join、right outer join),却错误的以为left join, right join是左内连接,右内连接(现在发现真是错的离谱)。在一次偶然间发现left join, right join与inner join 查出来的结果反差很大。所以今天特意抽出空来,把这个整理一下,理清楚。
left join 即左外连接。与left outer join 查出来的结果一致。以左表为基表,左表中的数据会全部查出来,右表中不满足条件的,补null。
right join即右外连接。与right outer join 查出来的结果一致。以右表为基表,右表中的数据会全部查出来,左表中不满足条件的,补null。
除此之外外,还有一个全连接 full join,查出结果与full outer join 一致。即 左、右表中的数据都会查出来。不满足的条件数据,分别补null。
具例如下:
客户表有四条数据:
在这里插入图片描述
交易表有三条数据:
在这里插入图片描述
用内连接、外连接查出来的结果分别如下:
内连接,三种写法查出来的结果是一样的:
在这里插入图片描述左外连接,以下两种写法查来出的结果是一样的:
在这里插入图片描述右外连接,以下两种写法查来出的结果是一样的:
在这里插入图片描述全连接,以下两种写法的结果是一样的:
在这里插入图片描述全连接的时候,因为左右表中有一条是满足条件的,所以查出来的结果是6条

并没有左内连接、右内连接,切记切记!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值