Oracle的外连接join以及on条件里面add和where后面的add区别

     外连接返回的结果,除了包含满足连接条件的记录,还包括不满足连接条件。
举个栗子:
     在Oracle中自带的SCOTT用户表中,DEPT部门表有部门编号40的部门,EMP员工没有40部门的员工。

select * from emp e right join dept d on e.deptno=d.deptno;
右表:dept |左表:emp

     该右连接查询语句,会保证右表的数据都显示(即使不满足 e.deptno=d.deptno条件的数据),左表不满足条件的列显示null。
在这里插入图片描述

select * from dept d right join emp e on d.deptno=e.deptno;
右表:emp |左表:dept
该右查询保证右表数据都会显示,所以不会显示部门40的信息
//----------------------------------------------------------------------------//
select * from dept d left join emp e on d.deptno=e.deptno;
右表:emp |左表:dept

     上述左连接查询语句,会保证左表的数据都显示(即使不满足 e.deptno=d.deptno条件的数据),右表不满足条件的列显示null。
在这里插入图片描述

on条件里面add和where后面的add区别:

     左连接:显示右表满足on连接条件的数据,所以on里面的add作为限制条件,限制右表显示的数据,不满足的列显示null。
     右连接:显示左表满足on连接条件的数据,所以on里面的add作为限制条件,限制左表显示的数据,不满足的列显示null。

select * from dept d left join emp e on (d.deptno=e.deptno and d.DNAME=‘SALES’)
在这里插入图片描述

     where作为指定查询条件,它的存在会让左连接或右连接都无效,只显示满足where查询条件的数据。
     以下查询结果一致:在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值