SELECT id, authorId, answer, votes
FROM ( SELECT id, authorId, answer, votes
FROM answers
ORDER BY votes DESC) AS h
GROUP BY authorId
Този малък чист трик е изграден въз основа на GROUP BY за да извлечете първия ред от всеки случай. Обикновено това е по подразбиране ORDER BY id ASC , но чрез тази подзаявка, първият ред във всеки authorId с най-много votes .
Забележка: Както беше споменато от Iain Elder, това решение не работи с ONLY_FULL_GROUP_BY активен и работи само в MySQL. Това решение до известна степен не се поддържа поради липса на документация, потвърждаваща това поведение. Работи добре за мен и винаги ми е работил добре.
Този метод все още работи с най-новия MySQL на sqlfiddle .