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

SQLite中GROUP BY查询仅返回1行:articles表分组丢失数据

问题原因

你在GROUP BY时使用了右表comments的字段t2.article_id,这是导致行丢失的直接原因:

  • 你使用的是LEFT JOIN,当文章没有关联的评论时,t2.article_id的值为NULL
  • 在SQL的分组逻辑中,所有值为NULL的行会被归为同一组,因此你2篇没有评论的文章最终被合并成了1组返回,只会展示其中1篇的id。

你单独指定WHERE t1.id = 'xxx'时查询结果正常,是因为过滤后仅剩下1行数据,不会触发多NULL行的分组合并逻辑。

解决方法

将分组字段改为左表articles的主键t1.id即可,该字段是非空且唯一的,不会出现分组合并的问题:

SELECT t1.id, COUNT(t2.id) AS comment_count
FROM articles AS t1
LEFT JOIN comments AS t2 ON t2.article_id = t1.id
GROUP BY t1.id;

执行后会返回2行结果,对应两篇文章的评论数都是0,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:57:04