2011-05-10 73 views
0

感谢您的阅读。订购前十名查询

我想编写一个查询,列出的谁使用了两个表recevied得票最多的人的名字:

------- 
votes 
------- 
vote_id, giver_user_id, receiver_user_id, datetime 

等。

------- 
users 
------- 

user_id, name, surname 

等等

到目前为止,我有:

$top_query = "SELECT * FROM vote, user WHERE vote.receiver_user_id = user.user_id GROUP BY receiver_user_id "; 

这类作品,但它没有列出列表顶部票数最多的用户。

我该如何订购?

谢谢。

OP

回答

4
SELECT u.*, COUNT(vote_id) AS votes_count 
FROM users u 
LEFT JOIN 
     votes v 
ON  v.receiver_user_id = u.user_id 
GROUP BY 
     u.user_id 
ORDER BY 
     votes_count DESC 
+0

非常感谢。完善! – 2011-05-10 16:01:03

0

这将组由接收机和为了通过以降序票:

select receiver_user_id, count(1) vote_count 
     from vote, user 
    where vote.receiver_user_id = user.user_id 
    group by receiver_user_id 
    order by 2 desc