解决mysql left join 无法显示左表的所有数据


一、问题:查询结果无法显示test1 的全部数据

SELECT *
FROM test1 a
left join test2 b on b.name=a.name
where b.createtimelike '%2021-03-09 00:00:00%'
and b.post='Java工程师'

二、解决方案

1、取消where条件,将where改为and即可实现

SELECT *
FROM test1 a
left join test2 b on b.name=a.name
and b.createtimelike '%2021-03-09 00:00:00%'
and b.post='Java工程师'

注意:以上筛选条件都是从b表也就是附表中

2、 如果要筛选主表也就是左表的数据,则需将主表的条件放置在where

SELECT *
FROM test1 a
left join test2 b on b.name=a.name
and b.createtimelike '%2021-03-09 00:00:00%'
and b.post='Java工程师'
where available = 1

注:join on 后边的条件只针对附表
如果要筛选主表,必须写在where后

转自:https://blog.csdn.net/weixin_44195615/article/details/114683063


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM