Заказ десятки запросов - PullRequest
0 голосов
/ 10 мая 2011

Спасибо за чтение.

Я пытаюсь написать запрос, чтобы перечислить имена людей, которые получили наибольшее количество голосов, используя две таблицы:

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

Ответы [ 3 ]

4 голосов
/ 10 мая 2011
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 голос
/ 10 мая 2011

Вы можете использовать предложение ORDER BY.С ключевым словом "asc" или "desc"

что-то вроде:

ORDER BY vote_count DESC

Mysql ссылка:

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

0 голосов
/ 10 мая 2011

Это сгруппирует по получателю и по голосам в порядке убывания:

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