通过mysql表排序并按金额排序

时间:2012-03-24 20:23:53

标签: php mysql count sql-order-by

我目前正在尝试创建一个包含我的5个博客标题的列表,其中它们的排名从1到5,1是最受欢迎的,而5是最不受欢迎的。我如何排名他们是通过观点。现在我已经在一个名为blog_views的表中使用了这些视图,而博客则称为博客。

所以我要做的是让PHP通过记录在其中的博客ID记录在blog_views中记录了多少个视图,然后将具有多个视图的博客标题列出到最少量的视图。我怎么能这样做?我希望我的问题很清楚!

我尝试过尝试,但失败了,因为我找不到合适的方法。

提前感谢您的帮助!

以下是两个表的模式:

Blog{ blog_id, title, body, userinformation}

blog_views{ viewid, ip, time, blog_id, used}

1 个答案:

答案 0 :(得分:1)

如果我理解您要正确执行的操作,则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