mysql的left join、right join、inner join

作者 : shijian 本文共943个字,预计阅读时间需要3分钟 发布时间: 2019-10-21 共49人阅读

A加油卡表:

id, userName, cardNo

1 aaa 111

2 bbb 111

3 aaa 222

B加油记录表:

id, number, userName , cardNo,

1 1234 aaa 111

2 234 bbb 111

left join:

select * from B   b    left join  A a on a.userName = b.userName   where b.userName=aaa

由于上面sql中,on后面的条件,userName在A表中对应多条,而不是对应一条,结果集就是笛卡尔积。B表中的1条满足剩余A表中的2条满足。结果为2条。

select * from B   b    left join  A a on a.userName = b.userName  and a.cardNo = b.cardNo  where b.userName=aaa

由于上面sql中,on后面的两个条件在A表中只能找到一条唯一数据,所以结果就是B表中有多少条数据满足where,结果集就返回多少条数据。这里是返回一条数据

right join:

下面这个sql与上面的left join效果一样:

select * from A   a    right join  B b on a.userName = b.userName  and a.cardNo = b.cardNo  where b.userName=aaa

inner join:

select * from A   a    inner  join  B b on a.userName = b.userName  and a.cardNo = b.cardNo  where a.userName=aaa

还是首先看on后面的条件,如果A表中的一条数据对应on的两个条件在B中只有一条数据,则返回满足where条件的2条数据。

select * from B   b    inner  join  A a on a.userName = b.userName  and a.cardNo = b.cardNo  where a.userName=aaa

以上总结一条:看on后面的条件,在被关联表中的数据是一条还是多条。

更多相关问题请访问PHP中文网:mysql视频教程

以上就是mysql的left join、right join、inner join的详细内容,更多请关注吆喝资源网其它相关文章!

本文转自PHP中文网,吆喝网(http://yaoohe.com)搜集整理,如有疑问请联系本站客服!

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"yaoohe.com",如遇到无法解压的请联系管理员!
吆喝资源网 » mysql的left join、right join、inner join

常见问题FAQ

提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们。

发表评论