在MySQL中使用GROUP BY在COUNT中包括零

去噪

我正在寻找一个在MySQL中进行查询的方法,以列出以下表格结构来列出所有系及其学生的数量:

mysql表

我的查询看起来像:

SELECT `f`.`id`, `f`.`name`, COUNT(*) `total`
FROM `student` `s`
INNER JOIN `course` `c` ON `c`.`id` = `s`.`course_id`
LEFT JOIN `faculty` `f` ON `f`.`id` = `c`.`faculty_id`
GROUP BY `c`.`faculty_id`
ORDER BY `f`.`name`

我得到这个结果:

查询结果

但是我需要得到所有的学院,甚至没有注册学生的学院。

如果我在course表中使用LEFT JOIN,则会得到相同的结果。

Madhur bhaiya

如果你想所有的院系;您加入JOIN的起始表格应该是教职员工表格。然后做Left连接到另一个表上。

使用以下查询:

SELECT `f`.`id`, `f`.`name`, COUNT(`s`.`id`) AS `total`
FROM `faculty` AS `f` 
LEFT JOIN `course` AS `c` ON `f`.`id` = `c`.`faculty_id` 
LEFT JOIN `student` AS `s` ON `c`.`id` = `s`.`course_id` 
GROUP BY `f`.`id`, `f`.`name` 
ORDER BY `f`.`name`

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章