我有一个简单的多学校管理系统,我正在努力获得教师总数以及特定学校的学生总数。我的表结构如下:MYSQL加入三张表
teachers
--------------------------
id | schoolid | Name | etc...
--------------------------
1 | 1 | Bob |
2 | 1 | Sarah|
3 | 2 | John |
students
--------------------------
id | schoolid | Name | etc...
--------------------------
1 | 1 | Jack |
2 | 1 | David|
3 | 2 | Adam |
schools
--------------------------
id | Name | etc...
---------------------------
1 | River Park High |
2 | Stirling High |
我可以指望刚刚全部用下面的查询教师:
SELECT COUNT(a.id) AS `totalteachers`
FROM teachers a
LEFT JOIN schools b ON a.schoolid = b.id WHERE b.id = '1'
,同样我可以用下面的查询次数,教师数量:
SELECT COUNT(a.id) AS `totalstudents`
FROM students a
LEFT JOIN schools b ON a.schoolid = b.id WHERE b.id = '1'
但是,我试图结合这两个查询来得到这样一个简单的结果:
totalstudents | totalteachers
--------------------------------
2 | 2
我曾尝试以下:
SELECT COUNT(a.id) as `totalteachers`, COUNT(c.id) as `totalstudents`
FROM teachers a
LEFT JOIN schools b ON a.schoolid = b.id
LEFT JOIN students c ON c.schoolid=b.id WHERE b.id = '5'
这是我正面临的确切问题,人为夸大计数!我选择了你的第三个解决方案(使用不同的),它的功能就像一个魅力!感谢您抽出宝贵时间回答我的问题,并帮助我理解:)我很感激。 – Bruno