我有一個用戶表和意見表,我想從用戶的選擇,通過的意見頂級用戶(評論)
數有從意見表,並命令他們意見最大的量的頂級用戶只需論壇意見應計入(類型可以是論壇,圖片,新聞等)
表結構
用戶
id | username | password
評論
id | text | type | author_id
我有一個用戶表和意見表,我想從用戶的選擇,通過的意見頂級用戶(評論)
數有從意見表,並命令他們意見最大的量的頂級用戶只需論壇意見應計入(類型可以是論壇,圖片,新聞等)
表結構
用戶
id | username | password
評論
id | text | type | author_id
SELECT users.id, users.name, COUNT(comments.id) AS cnt
FROM users
LEFT JOIN comments ON users.id = comments.author_id
WHERE type IN ('forum', 'picture', 'news', 'etc')
GROUP BY users.id
ORDER BY cnt DESC
LIMIT 10
獲得10最豐富的評論員在評論類型是「形」,「圖像」,「新聞」,或「等」。
哦,它已經晚了......而我很困,但它肯定應該是GROUP BY users.id? – 2011-05-17 22:10:15
不需要做任何左連接 – Ascherer 2011-05-17 22:13:13
doh。對。我將修復分組。 LEFT JOIN處理少於10個評論者的情況。內連接只會返回與其評論者相同數量的行。 – 2011-05-18 02:00:55
SELECT
u.id,u.username,u.password ,count(c.id) as total
FROM
users u
JOIN comments c on c.author_id = u.id
GROUP BY u.id
ORDER BY total DESC;
這應該做的伎倆,試圖讓我們知道它是如何摸索出適合您
UPDATE 有關如何做到這一點的細節,你會inlove具有落入this article
更新:新鏈接,舊的破損Databases
在PostgreSQL 8.1上測試:
select users.id, count(comments.author_id)
from users, comments
where users.id = comments.author_id
group by users.id
order by 2 desc
您正在使用哪些DBMS?定義*最高用戶*/*最大金額*。 – 2011-05-17 21:48:11
你試過了什麼? – stecb 2011-05-17 21:48:15