`

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条件的数据。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics