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

如何在该SQL查询中正确使用WHERE子句筛选COUNT=0的结果?

解决只获取COUNT=0的SQL查询结果问题

你的原查询已经通过左连接关联了users和photos表,并统计了每个用户对应的照片数量,但要筛选出照片数量为0的用户,只需在分组后添加HAVING子句做过滤即可:

SELECT 
    username, 
    COUNT(user_id) AS COUNT 
FROM 
    users 
LEFT JOIN 
    photos ON users.id = photos.user_id 
GROUP BY 
    username 
HAVING 
    COUNT(user_id) = 0
ORDER BY 
    COUNT ASC;

原理说明:

  • LEFT JOIN会保留users表中所有记录,没有对应照片的用户,photos.user_id字段会是NULL
  • COUNT(user_id)仅统计非NULL的记录数,因此无照片的用户统计结果为0
  • HAVING子句用于分组后过滤统计结果,而WHERE是分组前过滤数据,这里必须用HAVING来筛选分组后的统计值

你也可以替换为COUNT(photos.id)或COUNT(photos.user_id),效果完全一致——只要用户无对应照片,这些关联字段都是NULL,COUNT会自动忽略空值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:37:23