概述
前几天在需求测试过程中发现一个问题。表里新增的数据在另一个列表查不出来了。只能显示到去年12月份的数据。sql里用了一个where关联查询看起来也对。那新数据为什么没显示出来呢。后来查了一下关联表发现关联表的数据到12月份就没有了。把那个where关联查询执行了一下果然只能查出到12月份的数据。难道left join查询和where关联查不一样。试了一下果然是这样现把区别总结如下:
where 关联查询其实是精确匹配只有两个表里的数据都满足关联条件才能被查出来
Left join是会显示出左表全部的数据及右表符合条件的数据
where关联查询实际等价于inner join 只有符合条件的数据才会显示
示列如下:
1.SELECT su.user_id, su.username,sr.user_id,sr.role_id from sys_user as su LEFT JOIN sys_user_role as sr on su.user_id=sr.user_id;
2.SELECT su.user_id, su.username,sr.user_id,sr.role_id from sys_user as su ,sys_user_role as sr where su.user_id=sr.user_id;
3.SELECT su.user_id, su.username,sr.user_id,sr.role_id from sys_user as su inner JOIN sys_user_role as sr on su.user_id=sr.user_id;
三行sql结果依次对应下边三张图片
最后
以上就是受伤钻石为你收集整理的Mysql left join 和where连接查询总结的全部内容,希望文章能够帮你解决Mysql left join 和where连接查询总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复