我的查询非常接近,几乎所有其他时间都已经过了,但我还没有完成。
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而不是计数 - 我在哪里错了?
答案 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;