感谢您的阅读。
我正在尝试编写一个查询,使用两个表列出获得最多选票的人的名字:
-------
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 ";这种方法是可行的,但它不会在列表的顶部列出投票最多的用户。
我怎么能这样点菜呢?
谢谢。
操作
发布于 2011-05-10 23:19:00
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发布于 2011-05-10 23:19:19
可以使用ORDER BY子句。关键字"asc“或"desc”
类似于:
ORDER BY vote_count DESCMysql参考:
http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html
发布于 2011-05-10 23:21:55
这将按接收者分组,并按票数降序排序:
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 deschttps://stackoverflow.com/questions/5952309
复制相似问题