mysql的left join、right join、inner join
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的详细内容,更多请关注其它相关文章!
上一篇: html中相对定位与绝对定位
下一篇: css怎么控制字体大小
推荐阅读
-
MySQL 中 Join 的基本实现原理
-
MySQL 8.0.18 Hash Join不支持left/right join左右连接问题
-
关于MySql 和SqlServer 中left join , full join的一点区别
-
在MySQL中使用STRAIGHT_JOIN的教程_MySQL
-
MySQL 的 join 功能弱爆了?
-
深入理解mysql之left join 使用详解
-
mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录
-
mysql多表join时候update更新数据的方法
-
数据库Left join , Right Join, Inner Join 的相关内容,非常实用
-
超详细mysql left join,right join,inner join用法分析