SQL Left使用COUNT加入

时间:2014-12-10 00:50:45

标签: mysql sql join count

我的查询非常接近,几乎所有其他时间都已经过了,但我还没有完成。

SELECT a.name, IFNULL(b.student_id, 0) AS count 
FROM student AS a 
LEFT JOIN (SELECT  student_id, COUNT(*) as count FROM quizactivity GROUP BY  student_id) 
AS b 
ON a.id = b.student_id;

这将返回一个表,其中包含四个条目的名称,然后是它们在自己的表上的实际ID,a.id。

Name | Count
Will   1
Jane   2
Sally   0
Dave   4

莎莉因为没有结果而返回0。 我很清楚地返回桌子的id而不是计数 - 我在哪里错了?

1 个答案:

答案 0 :(得分:2)

你不想要点数吗?

SELECT a.name, COALESCE(b.count, 0) AS count 
FROM student a LEFT JOIN
     (SELECT student_id, COUNT(*) as count
      FROM quizactivity
      GROUP BY  student_id
    ) b 
    ON a.id = b.student_id;