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
)
Indeks di (country_id, rating, id)
untuk tabel MyISAM atau (country_id, rating)
untuk tabel InnoDB, akan membantu.
Kueri ini hanya akan menampilkan satu duck
per negara, bahkan dengan lebih dari satu yang memiliki peringkat yang sama. Jika Anda ingin bebek dengan peringkat terikat muncul, gunakan GROUP BY
@imm jawabannya.