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

MySQL统计查询异常排查:多表关联仅返回单条结果

问题原因与解决方案

哈哈,这个问题我熟!你的SQL语句现在只返回一条结果,核心原因是没加GROUP BY子句哦~

问题根源

当你使用COUNT()这类聚合函数时,如果不指定分组条件,MySQL会把所有符合WHERE条件(这里是WHERE 1,也就是所有行)的记录当成一个整体来统计,自然就只会返回一条汇总结果。而你想要的是每个学生单独的报名次数,必须告诉数据库要按学生的唯一标识来分组统计。

修正后的SQL语句

SELECT 
    student.id, 
    student.session_token AS available_token, 
    COUNT(inscription_student.id_inscription) AS nb_inscription_in_progress 
FROM student 
LEFT JOIN inscription_student ON student.id = inscription_student.id_student_join 
GROUP BY student.id, student.session_token;

为什么这么改?

  • 用GROUP BY student.id, student.session_token来指定分组规则:因为student.id是学生的唯一标识,每个学生对应唯一的id,而session_token是学生的属性字段,和id一起分组能保证每个学生的信息被单独统计。
  • 保留LEFT JOIN的好处是:哪怕某个学生没有报名任何课程,也会被查询出来,对应的nb_inscription_in_progress会显示为0,不会漏掉未报名的学生。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:27:52