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
)
Een index op (country_id, rating, id)
voor MyISAM-tabel of (country_id, rating)
voor InnoDB-tabel, zou helpen.
Deze zoekopdracht toont slechts één duck
per land, zelfs als er meer dan één dezelfde beoordeling heeft. Als je wilt dat eenden met een gelijke beoordeling verschijnen, gebruik dan @imm's GROUP BY
antwoord.