获取计数mysql的列表

获取计数mysql的列表,mysql,sql,group-by,count,left-join,Mysql,Sql,Group By,Count,Left Join,我有三张桌子: 学生(名单) 课程(额外课程列表) 题词(每位学生的课时题词列表) 我想为每个学生显示铭文的数量(目前没有日期^) 我的问题是: SELECT student.id, student.session_token AS available_token, count(inscription_student.id_inscription) AS nb_inscription_in_progress FROM student LEFT JOIN inscription_s

我有三张桌子:

  • 学生(名单)
  • 课程(额外课程列表)
  • 题词(每位学生的课时题词列表)
我想为每个学生显示铭文的数量(目前没有日期^)

我的问题是:

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
WHERE 1
它只返回1个结果。。。 怎么了

它只返回1个结果。。。怎么了

您的查询在
select
子句中使用聚合函数,但没有
groupby
子句:因此所有行都聚合到一行中,并为学生id和令牌选择随机值

您需要按学生分组,这样每个学生可以得到一行:

select 
    s.id,
    s.session_token as available_token,
    count(i.id_inscription) as nb_inscription_in_progress
from student s
left join inscription_student i on s.id = i.id_student_join
group by s.id

添加
按1,2分组