Ten eerste mis je een GROUP BY
clausule onderaan uw zoekopdracht om te groeperen op 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
Als je dan gewoon geen rijen wilt tonen waar total_student =0 dan kun je de MySQL HAVING-clausule gebruiken:
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
Of u kunt LEFT JOIN
wijzigen naar INNER JOIN
om in dit geval hetzelfde te bereiken.
Als u in plaats daarvan 0 wilt vervangen door null maar nog steeds rijen hebt, kunt u de select-instructie bijwerken om de totalen te krijgen tot:
SELECT IF(COUNT(student_name) = 0, NULL, COUNT(student_name)) AS total_student, school_name