对前十个查询进行排序

发布于 2024-11-06 05:27:03 字数 488 浏览 1 评论 0原文

感谢您的阅读。

我正在尝试编写一个查询来列出使用两个表获得最多选票的人的姓名:

-------
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

Thanks for reading.

I'm trying to write a query to list the names of people who have recevied the most votes using two tables:

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

etc..

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

user_id, name, surname

etc...

So far I have:

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

This kind of works, but it doesn't list the user with the most votes at the top of the list.

How can I order it this way?

Thank you.

OP

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

天生の放荡 2024-11-13 05:27:03
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
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
月亮邮递员 2024-11-13 05:27:03

您可以使用 ORDER BY 子句。
使用关键字“asc”或“desc”

类似:

ORDER BY vote_count DESC

Mysql参考:

http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html

You can use the ORDER BY clause.
With the keyword "asc" or "desc"

Something like :

ORDER BY vote_count DESC

Mysql reference :

http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html

千纸鹤 2024-11-13 05:27:03

这将按接收者分组并按投票降序排列:

    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

This will group by receiver and order by votes in descending order:

    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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文