sql >> Databasteknik >  >> RDS >> Mysql

Mysql - Få rad med lägst antal relationer

Du behöver bara en yttre sammanfogning för att inkludera lärare med noll 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 använda denormalisering (en kolumn med det förberäknade antalet elever per lärare), men det är en dålig vana och jag skulle inte rekommendera det om det inte är riktigt oundvikligt.



  1. VÄLJ FÖR UPPDATERING som håller hela tabellen i MySQL istället för rad för rad

  2. ändra tabellnamnet till versaler

  3. Hur TO_BASE64() fungerar i MariaDB

  4. egenskapen `diesel::Expression` är inte implementerad för `bigdecimal::BigDecimal`