MySQL возвращает первую строку объединенной таблицы

У меня есть две таблицы (страны и утки), где в таблице стран указаны все страны мира, а в таблице уток есть список уток с полем country_id для связи с основной страной.

Я пытаюсь получить список только стран, в которых есть хотя бы одна утка, а также одну совпадающую запись из таблицы уток для утки с самым высоким рейтингом в этой стране. На данный момент у меня есть:

SELECT *
FROM country c 
INNER JOIN ducks d ON c.id = d.country_id
ORDER BY c.country ASC, d.rating DESC

Это возвращает список всех уток, а не только одну на страну.

Буду признателен, если кто-нибудь укажет мне правильное направление. Я бы предпочел сделать это на SQL, чем иметь отдельный запрос для каждой страны, чтобы вытащить утку с самым высоким рейтингом.

9
задан hakre 4 March 2012 в 22:15
поделиться