2015-09-09 4 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 get zero

+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 classroom c LEFT JOIN student s ON c.classid = s.classid GROUP BY c.classId; Выход: classID 1,2 | COUNT (s.classID) 4,6 ... , но классID 3 не показывал –

+1

@BenjGonzales. , , Тогда я бы сделал вывод, что «3» не находится в таблице «класс». –

+0

У меня проблема, когда я добавляю новые «классы», как только я ее сохранил. Число студентов внутри класса стало 1, но в нем еще нет ученика. Он должен быть нулевым –