left join、right join、inner join的区别

我们在设计数据表的时候,根据范式会将表设计成不同的角色,这样在需要查询信息是就需要在不同的表中获取不同的字段,那么left join、right join、inner join这些东西就经常要用到,那么他们之间有什么区别的呢,我们做一个例子说明一下他们之间的区别。

表user

userid name

10001 user01

10002 user02

10003 user03

10004 user04

表order

id userid goodsid

200901 10001 50001

200902 10002 50002

200903 10010 50003

那么我们现在比较三个的不同之处

left join

select a.name,b.goodsid from user a
left join order b on b.userid = a.userid

结果:

name goodsid
10001 50001
10002 50002
10003 NULL
10004 NULL
我们可以看到left join是以表user为准,将符合条件的结果查询出来,没有订单的客户编号也显示。

right join

select a.name,b.goodsid from user a
right join order b on b.userid = a.userid

结果:

name goodsid
10001 50001
10002 50002
NULL 50003
我们可以看到right join是以表order为准,将符合条件的结果查询出来,没有用户编号的订单也显示。

inner join

select a.name,b.goodsid from user a
inner join order b on b.userid = a.userid

结果:

name goodsid
10001 50001
10002 50002

我们可以看到innerjoin是只显示符合b.userid = a.userid条件的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值