我有一個簡單的多學校管理系統,我正在努力獲得教師總數以及特定學校的學生總數。我的表結構如下: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