Potrzebujesz tylko zewnętrznego sprzężenia, aby uwzględnić nauczycieli z zerową liczbą uczniów.
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
Możesz użyć denormalizacji (kolumna z wstępnie obliczoną liczbą uczniów na nauczyciela), jednak jest to zły nawyk i nie polecałbym jej, jeśli nie jest to naprawdę nieuniknione.