left join on 过滤条件

img

img


请教下,为什么in过滤条件没生效呀?单独查了数量1的那条数据,确实不符合in条件,但是符合前三个条件,为什么第一次可以被查出来

你这个问题其实涉及2个问题
1.你的条件写在on里面,而非where里面,所以影响的是右表是否匹配数据,不影响左表是否显示数据
2.你4个条件是and的关系,所以当前3个条件匹配,最后一个不匹配,整体不匹配。

img

上面的条件全部放到where里面,具体为啥看看这个:https://www.cnblogs.com/shamo89/p/11065172.html

除了链表的字段,其余的字段过滤条件都放到where里面试试

兄弟,你的条件直接写在了On后面而不是where呀。

你把数量1的那条h.id 拿出来单独查,是什么结果

你还是先对h表进行查询结果,再左关联t表吧

子表的关联条件一半都是放在ON下吧,用的是LEFT join的话不妨将在关联条件中的字段都放进结果集中去,然后你自己看看数据,不做分组,毕竟数据量不多