You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL左连接搭配NOT IN子句查询无数据返回的问题排查

问题原因及解决方法

为什么原查询返回无数据?

当你用LEFT JOIN关联pages和page_likes表时,那些没有任何点赞记录的页面,对应的l.page_id字段会是NULL。而SQL的NOT IN子句只要包含NULL值,整个条件的判断结果就会变成NULL(不是TRUE),数据库会自动过滤掉这些结果,导致本该被选中的无点赞页面全部被排除,最终返回空数据集。

正确的查询写法

方法一:利用LEFT JOIN的NULL特性筛选

SELECT p.page_id 
FROM pages AS p 
LEFT JOIN page_likes AS l ON p.page_id = l.page_id
WHERE l.page_id IS NULL
ORDER BY p.page_id ASC;

方法二:统计点赞数筛选为0的页面

SELECT p.page_id 
FROM pages AS p 
LEFT JOIN page_likes AS l ON p.page_id = l.page_id
GROUP BY p.page_id
HAVING COUNT(l.page_id) = 0
ORDER BY p.page_id ASC;

内容的提问来源于stack exchange,提问作者Meenakshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:49:51