Mysql 计数(*)允许按空分组

Mysql 计数(*)允许按空分组,mysql,sql,Mysql,Sql,我有以下疑问: select count(*) as memo_count, student_id from memo group by student_id 返回以下结果集: memo_count student_id 3 0 8 1 然而,我真正希望它返回的是: memo_count student_id 3 0 8 1 0

我有以下疑问:

select count(*) as memo_count, student_id from memo group by student_id
返回以下结果集:

memo_count        student_id
3                 0
8                 1
然而,我真正希望它返回的是:

memo_count        student_id
3                 0
8                 1
0                 2

实际情况是,Group By正在过滤掉返回0的任何计数(*),这不是我想要的。有办法吗?谢谢。

你可以试试这样的东西。假设你有一桌学生

Select count(m.id), s.id from student s 
 left outer join memo m on m.student_id = s.id 
 group by s.id 

检查这个:如果它将返回0,这将意味着
学生id
在此表中不存在。你是否有另一个学生id表可以左键连接,它将返回所有学生id?它无法计算不存在的内容。。。你想要每个学生都有一张记录吗?哦,我犯了一个愚蠢的错误,你是对的,Michael,备忘录表中没有任何学生id为2的,这就是为什么它不起作用,我已经解决了问题,谢谢!