我有一個tbl_user,其中包含有關用戶的信息,我有一個tbl_article,其中包含物品+的tbl_user家長通過孩子的表
我們有父子關係的ID的數量排序,因爲每用戶可能有很多文章,這就是爲什麼我在文章表中包含user_id的原因。
我想列出有大多數文章的10個用戶......我找遍雖然我無法找到它......我想過這個問題,可是沒有用,我不擅長SQL查詢。
預先感謝您
我有一個tbl_user,其中包含有關用戶的信息,我有一個tbl_article,其中包含物品+的tbl_user家長通過孩子的表
我們有父子關係的ID的數量排序,因爲每用戶可能有很多文章,這就是爲什麼我在文章表中包含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)
如果有關於重複的關注即可。
什麼是RDBMS你在用嗎?如果第10名有一個平局會怎麼樣? – 2011-12-20 19:58:51
我只是使用mySQL的PHP ...這是關於一個web項目 – SmootQ 2011-12-20 20:07:15