2017-04-03 31 views
1
SELECT *, count(spieler) as 'Anzahl' 

FROM spieler, teilnehmer, durchfuehrung 

WHERE spieler.id = teilnehmer.spieler and teilnehmer.istErschienen = 1 and teilnehmer.durchfuehrung = durchfuehrung.id and durchfuehrung.wurdeUeberprueft = 1 

GROUP BY teilnehmer.spieler 

ORDER BY 'Anzahl' DESC; 

ORDER BY就是這樣沒用......請幫我解決這個MySQL查詢,以便別名Anzahl IST有序遞減....排序依據什麼也沒有發生的mysql

+1

[當使用單引號,雙引號,反引號和在MySQL(http://stackoverflow.com/questions/11321491/when-to-use-single-quotes-double-quotes-and-backticks-in-mysql) – fancyPants

+0

不要使用'SELECT * ... GROUP BY x' - '*'中的值將是_unpredictable_。 –

回答

2

我覺得你不應該引用你的別名Anzahl

你應該小心,如果你正在使用聚合函數像count()和SELECT *。你不能很好地分組它,並且它是被禁止的。

最好嘗試這樣的事:

SELECT 
    spieler.id, 
    teilnehmer.durchfuehrung, 
    COUNT(*) AS anzahl 
FROM 
    spieler, 
    teilnehmer, 
    durchfuehrung 
WHERE 
    spieler.id = teilnehmer.spieler 
AND 
    teilnehmer.istErschienen = 1 
AND 
    teilnehmer.durchfuehrung = durchfuehrung.id 
AND 
    durchfuehrung.wurdeUeberprueft = 1 
GROUP BY 
    spieler.id, 
    teilnehmer.durchfuehrung 
ORDER BY 
    anzahl DESC; 
2

你應該使用這個

order by count(spieler) 
相關問題