菜鸟出没,oracle的左连接,右连接

首先在准备好两张表,我创建了一张a表和一张b表.

其中a表的数据如图

select * from a



b表的数据如图

select * from b



执行左外连接语句:

select * from a a left join b b on a.code=b.b_code
上面的语句等同于  select * from a a,b b where a.code=b.b_code(+)


结果就是上面这张图啦,我们来看一下这个结果有什么特点,首先我们可以看到a表的全部数据都被查出来了,b表的全部数据也显示出来了,但是有几行数据后面是没有任何值的,也就是空。

再来根据我们的语句分析一波,首先我们查询出了所有的字段,又用到了left join ,那么left join又叫左外连接,首先我们看left join 两边是不是有a表和b表?并且我们还给a表取了别名为a。同样b表也是取了一个别名为b。我们将a表放在了左边,现在又用的是做外连接。所以我们将a表看做是主表。查询的时候,主表的所有行都会被显示出来。我们的匹配条件是

a.code=b.b_code

b表中匹配到的结果会显示在相应的位置,而未被匹配到的结果就被置为空。


执行右外连接语句

select * from a a right join b on a.code=b.b_code
上面的语句等同于        select * from a a,b b where a.code(+)=b.b_code


结果如图



有图有真相,右连接和左外连接主表是相反的,其他的都是一样的。

菜鸟一枚,各位大佬请轻喷!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值