我的MySQL数据库中有以下表格:
USERS
iduser缺口密码
制品
idarticles iduser text
如何通过一个SQL查询获取例如10个顶级出版商的文章按添加的文章排序?有没有办法做到这一点?我使用PHP来询问数据库。
答案 0 :(得分:3)
是的,通过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
正是这样做的