Mysql left join 和where连接查询总结

前几天在需求测试过程中发现一个问题。表里新增的数据在另一个列表查不出来了。只能显示到去年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结果依次对应下边三张图片
结果1
结果二结果三

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值