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
が1つだけ表示されます 同じ評価を持つ国が複数ある場合でも、国ごとに。評価が同点のアヒルを表示したい場合は、@immのGROUP BY
を使用してください 答えます。