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


  用户
  
  iduser昵称密码
  
  文章
  
  idarticles iduser文本


我如何通过一个SQL查询获取例如列表按添加的文章数排序的10个排名靠前的出版商?有什么办法吗?我正在使用PHP询问数据库。

最佳答案

是的,通过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确实做到了

关于php - 获取数据库中十大发行商的列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22337005/

10-10 23:37