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

posted @ 2021-12-23 10:14  卡卡罗特琪琪  阅读(1500)  评论(0编辑  收藏  举报