Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql - Récupère la ligne avec le plus petit nombre de relations

Vous avez juste besoin d'une jointure externe pour inclure les enseignants sans élèves.

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

Vous pouvez utiliser la dénormalisation (une colonne avec le nombre précalculé d'élèves par enseignant), cependant, c'est une mauvaise habitude et je ne la recommanderais pas si ce n'est pas vraiment inévitable.