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
)
Индекс на (country_id, rating, id)
за таблица MyISAM или (country_id, rating)
за таблицата InnoDB, би помогнало.
Тази заявка ще покаже само една duck
на държава, дори при повече от една с еднакъв рейтинг. Ако искате да се показват патици с равен рейтинг, използвайте GROUP BY
на @imm отговор.