我目前正在尝试创建一个包含我的 5 个博客标题的列表,其中它们从 1 到 5 排名,1 是最受欢迎的,而 5 是最不受欢迎的。我是通过观看次数来对它们进行排名的。现在我已经可以使用 View 了,这些 View 位于名为 blog_views 的表中,而博客则称为 blog。
所以我想做的是让 PHP 通过记录在 blog_views 中的博客 id 对记录在 blog_views 中的浏览量进行排序,然后列出浏览量最多的博客标题,直至浏览量最少。我怎样才能做到这一点?我希望我的问题很清楚!
我尝试过尝试,但失败了,因为我找不到正确的方法。
感谢您提前提供的帮助!
这是两个表的架构:
Blog{ blog_id, title, body, userinformation}
blog_views{ viewid, ip, time, blog_id, used}
最佳答案
如果我正确地理解了您想要执行的操作,则此 JOIN
应该可以做到;
SELECT blog.blog_id, COUNT(blog_views.blog_id) as views
FROM blog
LEFT JOIN blog_views
ON blog.blog_id=blog_views.blog_id
GROUP BY blog.blog_id
ORDER BY COUNT(blog_views.blog_id) DESC;
简而言之,选择所有博客/博客浏览量组合,按 blog_id 将它们分组,以便能够计算每个博客 ID 的浏览量,最后按浏览量降序排列。
演示 here .
关于php - 对mysql表进行排序并按金额排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855273/