Php 按子表数排序的父表
我有一个tbl_用户,它包含关于用户的信息,我有一个tbl_文章,它包含文章+tbl_用户的ID 我们有一个父子关系,因为每个用户都可能有许多文章,这就是为什么我在文章表中包含user_id 我想列出拥有最多文章的10个用户。。。我到处都搜索过,虽然找不到它……我想了想,但徒劳无功,我不擅长SQL查询 先谢谢你Php 按子表数排序的父表,php,mysql,sql,parent,Php,Mysql,Sql,Parent,我有一个tbl_用户,它包含关于用户的信息,我有一个tbl_文章,它包含文章+tbl_用户的ID 我们有一个父子关系,因为每个用户都可能有许多文章,这就是为什么我在文章表中包含user_id 我想列出拥有最多文章的10个用户。。。我到处都搜索过,虽然找不到它……我想了想,但徒劳无功,我不擅长SQL查询 先谢谢你 SELECT TOP 10 UserID, COUNT(Article) FROM tbl_User u INNER JOIN tbl_Article a ON a.Us
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
您所需要的只是一个分组依据
和一个加入
如果用户可能希望包含0篇文章,则应使用左连接
如果担心重复,您还可以选择计数(不同的文章)
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
您所需要的只是一个分组依据
和一个加入
如果用户可能希望包含0篇文章,则应使用左连接
如果担心重复,您还可以选择计数(不同的文章)
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使用的一个;)
根据您使用的RDBMS,您可能需要TOP(10)
或LIMIT 10
,等等。我将两者都包括在内,以便您可以查看,但只使用RDBMS使用的一个;) 您正在使用什么RDBMS?如果第十名的排名是平手呢?我只是在用mySQL和PHP。。。这是关于一个网络项目你在用什么关系数据库?如果第十名的排名是平手呢?我只是在用mySQL和PHP。。。是关于一个网络项目的谢谢这么多朋友+1,我将尝试以下方法:-)如果前10名中有一篇文章为0篇,则不包括在内;)如果他们有0篇文章,那么他们不应该被包括在内,我猜,因为会有一个无限的方式与所有没有文章的其他用户联系;([+1无论如何,因为像我一样肛门并不总是有帮助:)@Dems-LOL很抱歉打破了你的泡泡!我会给你加张便条。非常感谢你的朋友+1,我将尝试以下方法:-)如果前10名中有一篇文章为0篇,则不包括在内;)如果他们有0篇文章,那么他们不应该被包括在内,我猜,因为会有一个无限的方式与所有没有文章的其他用户联系;([+1无论如何,因为像我一样肛门并不总是有帮助:)@Dems-LOL很抱歉打破了你的泡泡!我会给你加一张便条。谢谢你的朋友+1,我已经让它工作了,只要有选择两个最佳答案的选项;)@SimoTAQI-Awwwwww,我先有了限制版本;)你得到了你需要的,这才是最重要的。不是我的虚荣心。或者需要外部的赞扬和辩护。我的存在并不依赖于投票和积分。哎呀,那我来看看你们两人之间的第一次对话:-)好,最好的回答:-)接受这一次很好:)他确实是第一个。@Dems跳了一个点舞,笑着在地板上打滚。谢谢你的朋友+1,我已经让它工作了,只要有选择两个最佳答案的选项;)@SimoTAQI-Awwwwww,我先有了限制版本;)你得到了你需要的,这才是最重要的。不是我的虚荣心。或者需要外部的赞扬和辩护。我的存在并不依赖于投票和积分。哎呀,那我来看看你们两人之间的第一次对话:-)好,最好的回答:-)接受这一次很好:)他确实是第一个。@Dems跳了一支舞,笑着在地板上打滚。