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

MySQL关联统计查询仅返回1条结果而非预期多条的问题排查

问题原因

你当前的SQL使用了COUNT()这类聚合统计函数,但没有添加GROUP BY子句指定分组维度,数据库会默认将所有符合WHERE groupid = 1条件的关联记录合并为1条聚合结果,这就是你仅返回1条数据的核心原因。
你预期按每个版块分类统计主题数和帖子数,所以需要按分类的唯一维度做分组。

修正后的SQL语句

SELECT forum_category.groupid, 
       forum_category.categoryid, 
       forum_category.categoryname, 
       forum_category.categorydescription, 
       forum_category.category_url, 
       forum_category.accesslevel,
       COUNT(DISTINCT forum_topic.topicid) AS topics, 
       COUNT(DISTINCT forum_post.postid) AS posts 
FROM forum_category 
INNER JOIN forum_topic ON forum_topic.categoryid=forum_category.categoryid 
INNER JOIN forum_post ON forum_post.topicid=forum_topic.topicid 
WHERE groupid = 1
-- 新增GROUP BY子句,按分类维度分组统计
GROUP BY forum_category.groupid, 
         forum_category.categoryid, 
         forum_category.categoryname, 
         forum_category.categorydescription, 
         forum_category.category_url, 
         forum_category.accesslevel

补充说明

如果你的场景下需要返回所有groupid=1的分类,哪怕该分类下没有主题、没有帖子也显示统计值为0,可以将INNER JOIN替换为LEFT JOIN,避免无数据的分类被关联过滤掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:36:03