我的MySQL数据库中有以下表格:
用户
iduser昵称密码
文章
idarticles iduser文本
我如何通过一个SQL查询获取例如列表按添加的文章数排序的10个排名靠前的出版商?有什么办法吗?我正在使用PHP询问数据库。
最佳答案
是的,通过JOIN
和COUNT()
这应该很容易。类似于以下内容
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/