Du skal bare bruge en ydre forbindelse for at inkludere lærerne med nul elever.
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
Du kan bruge denormalisering (en kolonne med det forudberegnede antal elever pr. lærer), men det er en dårlig vane, og jeg vil ikke anbefale det, hvis det ikke virkelig er uundgåeligt.