Гнездование выбирает для создания алгоритма популярности

StackOverflow https://stackoverflow.com/questions/4486250

  •  11-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь написать функцию SQL для создания алгоритма популярности.

Я хотел бы сортировать «посты» по количеству комментариев в «комментариях» с «post_id» поста, добавленного к сумме голосов в таблице «Голоса» с «post_id» поста, все отсортированы по «дате» в таблице «Посты» (временная метка).

Я не уверен, как сделать эту многолетнюю сортировку, поэтому я обращаюсь к некоторому руководству!

Заранее спасибо, Уилл.

Это было полезно?

Решение

Я не тестировал, но это может сработать:

SELECT `post_id`, COUNT(`post_id`) AS `count` FROM `comments` GROUP BY `post_id`

И дополнительно вы можете присоединиться к таблице сообщений:

SELECT * FROM `posts` LEFT JOIN (SELECT `post_id`, COUNT(`post_id`) AS `count` FROM `comments` GROUP BY `post_id`) AS `p` ON(`post_id`)

Другие советы

Я решил пойти только на основе «голосования».

SELECT posts.id, posts.date, COUNT(votes.id) AS votePerPost FROM posts,votes WHERE posts.id = votes.post_id GROUP BY posts.id ORDER BY posts.date DESC, votePerPost ASC

Потому что это пример ближайшего. Из того, что я искал.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top