выбор вложенности, чтобы сделать алгоритм популярности - PullRequest
0 голосов
/ 20 декабря 2010

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 20 декабря 2010

Я решил пойти только на основании подсчета голосов.

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

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

0 голосов
/ 20 декабря 2010

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

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`)
...