mysql left join on and

来源:互联网 发布:linux运行速度 编辑:程序博客网 时间:2024/05/23 11:57

最近开发发现sql有一个陷阱,比如  

select a.*/* from aaa a left join bbb b on a.id=b.q and a.w is not null 查询一样显示 a.w为null 的值,无法得到相当然的结果,但是bbb表对应的数据该过滤掉的数据不会再匹配,只会以null 空字段匹配 aaaa表的数据  即,返回为 * 时 a.w 为null的对应的 b的表匹配到的数据全部为空行 占位
如果返回的为 b.* 只会显示is not null 的行匹配到的a的数据,行数不变 全部为空行  
建议最好加上 where关联 才能做到真正的过滤 如果后面还有 left join 则还不能在中间用where  只能使用子查询方式实现

0 0
原创粉丝点击