2015-09-09 62 views
0
SELECT COUNT(*) totalStudent, 
c.* 
FROM classroom c 
INNER JOIN student s 
ON c.classID = s.classID 
GROUP BY c.classID 

如何在totalStudent得到零?如果學生在教室內空蕩蕩的。SQL COUNT得到零

+0

你可以使用'COALESCE(COUNT(*),0)'... – icktoofay

回答

1

我把你的問題解釋爲:「有些班級沒有學生,我怎麼包括這些?」如果這是正確的,那麼關鍵是left join

SELECT c.classId, COUNT(s.classId) 
FROM classroom c LEFT JOIN 
    student s 
    ON c.classid = s.classid 
GROUP BY c.classId; 
+0

是的,遺憾的語法。 SELECT c.classId,COUNT(s.classId) FROM教室c LEFT JOIN 學生s ON c.classid = s.classid GROUP BY c.classId;輸入: classID 1,2 | COUNT(s.classID)4,6 ... 但classID 3沒有顯示 –

+1

@BenjGonzales。 。 。然後我會得出結論:「3」不在「課堂」表中。 –

+0

我有一個問題,每當我保存它時添加新的'類'。班內的學生人數變成1,但裏面沒有學生。它應該爲零 –