我有一个用户表和意见表,我想从用户的选择,通过的意见顶级用户(评论)
数有从意见表,并命令他们意见最大的量的顶级用户只需论坛意见应计入(类型可以是论坛,图片,新闻等)
表结构
用户
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