2012-04-13 4 views
2

У меня возникли проблемы с попыткой выбрать идентификаторы предметов, упорядоченных по количеству проголосовавших. Голоса держатся в отдельной таблице, но порядок не выходит в правильном порядке.Выбор заказа по совпадениям во второй таблице

Может ли кто-нибудь указать, где это происходит неправильно, пожалуйста?

Таблица CompetitionEntries (не используется в запросе, но может быть уместным)

id | PhotoTitle 
======================= 
23 | 'Photo 1' 
24 | 'Photo 2' 
25 | 'Photo 3' 
26 | 'Photo 4' 
======================= 

Таблица CompetitionVotes

id | IdOfPhotoVotedOn 
======================= 
10 | 23 
11 | 24 
12 | 22 
13 | 22 
14 | 22 
15 | 24 
======================= 

Я пытаюсь использовать оператор, показанный ниже»

SELECT `IdOfPhotoVotedOn`, COUNT(`IdOfPhotoVotedOn`) 'Votes' 
FROM `CompetitionVotes` 
WHERE 1 
GROUP BY `IdOfPhotoVotedOn` 
ORDER BY 'Votes' DESC, `IdOfPhotoVotedOn` 

Я am getting is

IdOfPhotoVotedOn | Votes 
========================== 
    22   | 3 
    23   | 1 
    24   | 2 

Я пытаюсь получить это

IdOfPhotoVotedOn | Votes 
========================== 
    22   | 3 
    24   | 2 
    23   | 1 

ответ

2

Попробуйте это?

SELECT `IdOfPhotoVotedOn`, COUNT(`IdOfPhotoVotedOn`) 'Votes' 
FROM `CompetitionVotes` 
WHERE 1 
GROUP BY `IdOfPhotoVotedOn` 
ORDER BY COUNT(`IdOfPhotoVotedOn`) DESC, `IdOfPhotoVotedOn` 
+0

Spot on thanks Dems. Будет тикать/голосовать, когда прошло 5 минут. –

2
SELECT * FROM 
(SELECT `IdOfPhotoVotedOn`, COUNT(`IdOfPhotoVotedOn`) 'Votes' 
FROM `CompetitionVotes` 
WHERE 1 
GROUP BY `IdOfPhotoVotedOn`) A 
ORDER BY A.Votes DESC; 
Смежные вопросы