Po pierwsze, brakuje Ci GROUP BY
klauzula u dołu zapytania, aby pogrupować według school_name
:
SELECT count(student_name) AS total_student, school_name
FROM student
LEFT JOIN school_info ON school_info.school_id = student.school_id
WHERE student.status = '0'
GROUP BY school_name
Następnie, jeśli chcesz po prostu nie wyświetlać wierszy, w których total_student =0, możesz użyć klauzuli MySQL HAVING:
SELECT count(student_name) AS total_student, school_name
FROM student
LEFT JOIN school_info ON school_info.school_id = student.school_id
WHERE student.status = '0'
GROUP BY school_name
HAVING count(student_name) > 0
Możesz też zmienić LEFT JOIN
do INNER JOIN
aby osiągnąć to samo w tym przypadku.
Na koniec, jeśli zamiast tego chcesz zamienić 0 na null, ale nadal masz wiersze, możesz zaktualizować instrukcję select, uzyskując sumy do:
SELECT IF(COUNT(student_name) = 0, NULL, COUNT(student_name)) AS total_student, school_name