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

SQL歧义错误求助:train_id关联查询无法生成训练员训练次数统计

问题解决:训练员训练次数统计SQL修正

你的SQL存在三个核心问题,导致歧义错误且无法满足「显示所有训练员」的需求:

  • 字段歧义:train_id同时存在于trainer和workout表中,直接写train_id时数据库无法判断要取哪个表的字段
  • 缺少分组逻辑:使用聚合函数COUNT()时,必须通过GROUP BY指定分组字段,否则会把所有记录合并成一行统计
  • JOIN类型错误:INNER JOIN只返回两张表都有匹配记录的数据,会漏掉没有任何训练记录的训练员,需要用LEFT JOIN保留所有训练员

修正后的SQL语句

SELECT trainer.train_id AS "Trainer ID", COUNT(workout.workout_id) AS "Number of workouts"
FROM trainer
LEFT JOIN workout ON trainer.train_id = workout.train_id
GROUP BY trainer.train_id;

关键说明

  • 明确指定trainer.train_id和workout.workout_id,彻底消除字段歧义
  • LEFT JOIN确保保留trainer表的所有记录,即使该训练员没有对应的训练记录
  • GROUP BY trainer.train_id让统计按单个训练员ID独立计算
  • COUNT(workout.workout_id)会自动将无训练记录的训练员次数统计为0,因为NULL值不会被COUNT计入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 10:30:48