Гнездование выбирает для создания алгоритма популярности
-
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
Потому что это пример ближайшего. Из того, что я искал.
Не связан с StackOverflow