查询计数学生

时间:2020-04-25 11:20:43

标签: mysql sql join count left-join

Table - Class
=========================

id | name 

1  | class 1

2  | class 2

Table - Teachers
=========================

id | name 

1  | Teacher 1

2  | Teacher 2

Table - class-Teacher
=========================

id | teacher_id | class_id 

1  |     1      |   1

2  |     1      |   2
Table - students
=========================

id |   name     | class_id 

1  |  student 1 |   1

2  |  student 2 |   2

预期结果

 id  |     name       | total_students

  1  |  Teacher 1     |    2

  2  |  Teacher 2     |    0

1 个答案:

答案 0 :(得分:1)

这看起来像left join和聚合:

select t.id, t.name, count(s.id) no_students
from teachers t
left join class_teachers ct on ct.teacher_id = t.id
left join students s on s.class_id = ct.class_id
group by t.id, t.name