感谢阅读。
我正在尝试编写一个查询,列出使用两个表收到最多票数的人的姓名:
-------
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
答案 0 :(得分: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
答案 1 :(得分:1)
您可以使用ORDER BY子句。 使用关键字“asc”或“desc”
类似的东西:
ORDER BY vote_count DESC
Mysql参考:
答案 2 :(得分: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