解决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