GROUP BY
まず、クエリの最後に group by の句がありません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
次に、単純に total_student = 0 の行を表示したくない場合は、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
または、この場合、 に変更LEFT JOIN
しINNER JOIN
て同じことを達成することもできます。
最後に、代わりに 0 を null に置き換えたいが行が残っている場合は、合計を取得する select ステートメントを次のように更新できます。
SELECT IF(COUNT(student_name) = 0, NULL, COUNT(student_name)) AS total_student, school_name