SELECT c.*, d.*
FROM country c
INNER JOIN ducks d
ON d.id = --- guessing the ducks Primary Key here
( SELECT dd.id --- and here
FROM ducks dd
WHERE c.id = dd.country_id
ORDER BY dd.rating DESC
LIMIT 1
)
Ett index på (country_id, rating, id)
för MyISAM-tabellen eller (country_id, rating)
för InnoDB-tabellen skulle hjälpa.
Den här frågan visar bara en duck
per land, även om fler än ett har samma betyg. Om du vill att ankor med bundna betyg ska visas, använd @imms GROUP BY
svar.