繁体   English   中英

SQL查询以获取班级的学生总数

[英]Sql query to get total number of students in a class

我有这个SQL查询:

SELECT c.id as ID, c.class_name as CLASS, COUNT(e.student_id) AS STUDENT_COUNT 
FROM classes as c
LEFT JOIN enrollments as e on e.class_id = c.id
where c.teacher_id = 8 AND e.approved = 1
group by c.class_name;

我想做的是获取所有班级以及这些班级已批准的学生人数。 sql查询应该返回类似

ID            CLASS          STUDENT_COUNT
1             Math              0
2             Biology           2
3             Algebra           1
4             Literature        5

问题是由于e.approved = 1我根本没有得到任何课程。 建议?

我的架构如下

CLASSES表

id, teacher_id, class_name, grade

报名表

id, class_id, student_id, approved

更改查询以使用左侧联接条件中的e.approved:

SELECT c.id as ID, c.class_name as CLASS, COUNT(e.student_id) AS STUDENT_COUNT 
FROM classes as c
LEFT JOIN enrollments as e on e.class_id = c.id 
AND  e.approved = 1
where c.teacher_id = 8 
group by c.class_name;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM