Sie brauchen nur einen äußeren Join, um die Lehrer mit null Schülern einzuschließen.
select t.id, t.name
from teacher t
left join student s on t.id = s.teacher_id
group by t.id
order by count(s.name)
limit 1
Sie können die Denormalisierung (eine Spalte mit der vorberechneten Anzahl von Schülern pro Lehrer) verwenden, aber das ist eine schlechte Angewohnheit und ich würde es nicht empfehlen, wenn es nicht wirklich unvermeidlich ist.