Выберите количество голосов для каждого объекта и самых популярных объектов

0

У меня есть две таблицы:

VOTE с полями pk:id, fk:uid, date и SUBMISSION с полями pk:id, ....

Таблицы имеют отношение 1to1 для полей uid < -id. Как я могу теперь запросить для:

  • список объектов вместе с их оценкой
  • список из 10 самых рейтинговых объектов, заказанных по счету?
Теги:
count
foreign-key-relationship

1 ответ

1
Лучший ответ
    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 и сохранить его с помощью триггера/кода для хранения предварительно подсчитанного количества голосов.

  • 0
    Я подумаю об этом, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню