oracle 内外连接,左连接,右连接 区别

首先讲解一下 on 与where后面接的条件的区别

on和where条件的区别如下:
1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。(1,1那条数据就是left join的原则 必须返回左边表的记录,而应该显示的b表的数据就被过滤掉了)

内外连接是主要区别就是主表的数据是否有过滤操作。例如有两张表(a/b) 结构分别如下图:

但是通过内外连接查出来的数据明显是不同的,下面就举例说明(有点特殊的例子,在on后面加的条件,因为如果在where后加条件的话,就不在存在内外连接的意义了):

on、where、having的区别

on、where、having这三个都可以加条件的子句中,on是最先执行,where次之,having最后。有时候如果这先后顺序不影响中间结果的话,那最终结果是相同的。但因为on是先把不符合条件的记录过滤后才进行统计,它就可以减少中间运算要处理的数据,按理说应该速度是最快的。

 

转载于:https://www.cnblogs.com/wangqc/p/oracle_neiwailianjie.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值