2016-12-05 155 views
0

这个标题的问题存在很多次,但我很难找出关于我的表的问题。LEFT JOIN不返回NULL行

我有课程

id  | name 
1  | course A 
2  | course B 

一张桌子和一台带视频的课程

course_id |  name 
1   |  video A 
1   |  video B 

我想要检索的所有课程,包括他们多少视频。我的查询只返回课程A,但不是课程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 

回答

3

课程B您在这里缺少一个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;