У меня есть две таблицы:
VOTE с полями pk:id, fk:uid, date
и SUBMISSION с полями pk:id, ...
.
Таблицы имеют отношение 1to1 для полей uid < -id. Как я могу теперь запросить для:
SELECT s.*,
COUNT(*) AS cnt
FROM SUBMISSION s
INNER JOIN VOTE v ON s.id = v.uid
GROUP BY s.id
ORDER BY cnt DESC
LIMIT 10
Без предложений ORDER BY
и GROUP BY
вы просто получите все материалы с подсчетом голосов.
Но я рекомендую создать поле votes_count
в таблице SUBMISSION
и сохранить его с помощью триггера/кода для хранения предварительно подсчитанного количества голосов.