[英]Parent Ordered by number of child tables
我有一个tbl_user,其中包含有关用户的信息,我还有一个tbl_article,其中包含文章+ tbl_user的ID
我们有一个父子关系,因为每个用户可能有很多文章,这就是为什么我在articles表中包含user_id的原因。
我想列出拥有最多文章的10个用户...尽管找不到我却在任何地方进行搜索...我已经想过了,但徒劳无功,我对SQL查询并不满意。
先感谢您
SELECT TOP(10)
tbl_user.id,
COUNT(tbl_article.user_id)
FROM
tbl_user
LEFT JOIN
tbl_article
ON tbl_user.id = tbl_article.user_id
GROUP BY
tbl_user.id
ORDER BY
COUNT(tbl_article.user_id) DESC
LIMIT
10
根据您使用的RDBMS,您可能需要TOP(10)
或LIMIT 10
,等等。我将二者都包括在内,因此您可以看到,但只能使用RDBMS所使用的一个;)
SELECT TOP 10
UserID, COUNT(Article)
FROM tbl_User u
INNER JOIN tbl_Article a
ON a.Userid = u.userid
GROUP BY userid
ORDER BY COUNT(article) DESC
您需要的只是GROUP BY
和JOIN
。
如果希望包含0篇文章的用户有潜力,则应使用LEFT JOIN
。
如果有重复的问题,也可以选择COUNT(DISTINCT Article)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.