0
我有3張表想加入。 學生,遲到和曠工。如何在3張桌子上正確使用COUNT?
學生包含每個學生所需的信息。
遲到 and 曠工。他們的結構幾乎相同。兩者都包含像student_id,日期等相同的列...
我的目標是計算曠工和遲到的數目,並把它放在與student_id相同的學生同一行。
Ex。 學生表:
student_id name
a1 Josh
a2 Pete
a3 Gabe
a4 Howard
遲到表:
student_id date
a2 January 1,2016
a4 January 23,2016
曠工表:
student_id date
a1 Feb. 2,2009
a2 August 3,2011
a2 August 4,2011
a4 March 18,2016
a4 June 28,2016
a4 June 29,2016
a4 July 15,2016
a4 July 16,2016
a4 July 29,2016
我已經嘗試了一些。但這是迄今爲止我發現的最接近的一個。
SELECT students.student_id,
COUNT(absenteeism.student_id) AS absents,
COUNT(tardiness.student_id) AS tardi
FROM students
LEFT JOIN absenteeism ON students.student_id = absenteeism.student_id
LEFT JOIN tardiness ON students.student_id = tardiness.student_id
GROUP BY students.student_id
,結果是
student_id absents tardi
a1 1 0
a2 2 2
a3 0 0
a4 6 6
我只得到了缺席權數。問題是a2和a4始終具有相同數量的缺席和遲到。
正確的結果應該是這樣的...
student_id absents tardi
a1 1 0
a2 2 1
a3 0 0
a4 6 1