För det första saknar du en GROUP BY
klausul längst ned i din fråga för att gruppera efter 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
Sedan, om du helt enkelt inte vill visa rader där total_student =0 kan du använda MySQL HAVING-satsen:
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
Eller så kan du ändra LEFT JOIN
till INNER JOIN
för att åstadkomma samma sak i det här fallet.
Slutligen, om du istället vill ersätta 0 med null men fortfarande har rader, kan du uppdatera select-satsen för att få totalsummorna till:
SELECT IF(COUNT(student_name) = 0, NULL, COUNT(student_name)) AS total_student, school_name