mysql 左连接 对右表过滤 in不起作用

osc_86332308 发布于 01/13 16:37
阅读 192
收藏 0

图一图二

请教下,为什么in这个过滤条件,没有把数据过滤掉,查询了多出来的那条数据,前三个AND条件符合,in条件不符合,没被过滤掉,有遇到这种情况吗

加载中
0
sxgkwei
sxgkwei
左连接,表示符合对左表限制条件的左表数据,都需要出现在最终结果集里面。你后面对右表的限制,并不能减少左表数据的显示,这很正常啊。按你希望,我觉得,第一个截图的sql是错误的,第二个应该是对的。
0
osc_19972459
osc_19972459

你的left join限制条件是不满足不关联了,但是主表的数据还在,所以count的时候是1。当你把条件放到下面的时候,由于限制的内容是left join的表,先关联,再过滤,所以消失了,这种关联方式实际相当于inner join。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部