这个标题的问题存在很多次,但我很难弄清楚我的桌子。
我有一个课程表
id | name
1 | course A
2 | course B
以及包含课程视频的表格
course_id | name
1 | video A
1 | video B
我想检索所有课程,包括他们有多少视频。我的查询只返回课程A而不是课程B(没有视频)。但我仍然希望B课程被退回
SELECT c.name, COUNT(v.course_id) as num_videos FROM courses as c
LEFT JOIN videos as v ON v.course_id = c.id
答案 0 :(得分:3)
您在这里缺少group by
SELECT c.name, COUNT(v.course_id) as num_videos
FROM courses as c
LEFT JOIN videos as v ON v.course_id = c.id
GROUP BY v.course_id;