Php 嵌套选择生成流行算法
我正在尝试编写一个sql函数来制作流行算法 我想根据“评论”中的评论数量和帖子的“post_id”对“post”进行排序,再加上“投票”表中的投票数量和帖子的“post_id”,所有这些都按照“posts”表中的“date”(时间戳)进行排序 我不知道如何进行这种多表排序,所以我想寻求一些指导Php 嵌套选择生成流行算法,php,sql,sorting,popularity,Php,Sql,Sorting,Popularity,我正在尝试编写一个sql函数来制作流行算法 我想根据“评论”中的评论数量和帖子的“post_id”对“post”进行排序,再加上“投票”表中的投票数量和帖子的“post_id”,所有这些都按照“posts”表中的“date”(时间戳)进行排序 我不知道如何进行这种多表排序,所以我想寻求一些指导 事先谢谢,威尔。我还没有测试过,但它可能会工作: SELECT `post_id`, COUNT(`post_id`) AS `count` FROM `comments` GROUP BY `post_
事先谢谢,威尔。我还没有测试过,但它可能会工作:
SELECT `post_id`, COUNT(`post_id`) AS `count` FROM `comments` GROUP BY `post_id`
此外,您还可以将其与posts表连接:
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