获取数据库中十大顶级发布者的列表

时间:2014-03-11 21:28:13

标签: php mysql sql

我的MySQL数据库中有以下表格:

  

USERS

     

iduser缺口密码

     

制品

     

idarticles iduser text

如何通过一个SQL查询获取例如10个顶级出版商的文章按添加的文章排序?有没有办法做到这一点?我使用PHP来询问数据库。

1 个答案:

答案 0 :(得分:3)

是的,通过JOINCOUNT()这应该很容易。类似于以下内容

SELECT `users`.`iduser`, COUNT(`articles`.`idarticles`) AS `total_articles`
FROM `users`
INNER JOIN `articles` ON `users`.`iduser` = `articles`.`iduser`
GROUP BY `users`.`iduser`
ORDER BY `total_articles` DESC
LIMIT 10

一点解释:

  • COUNT()会告诉您所说的内容 - articles
  • 中所有相关条目的统计
  • INNER JOIN会将所有属于一起的条目(通过ON定义)
  • 配对
  • GROUP BY告诉SQL您对各种结果感兴趣,每个结果都不同iduser(如果不是这样,您将在第一个返回的行中计算所有文章)
  • ORDER BY .. DESC对于按降序排列结果非常重要(因此大多数首先发布)
  • LIMIT 10正是这样做的