OrderBy什么都没发生mysql

时间:2017-04-03 09:50:08

标签: mysql sql-order-by

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查询,以便Alias Anzahl命令desc ....

2 个答案:

答案 0 :(得分:2)

我认为你不应该引用你的别名Anzahl

如果使用带有SELECT *的count()等聚合函数,则应该小心。你不能把它组合得很好,按照惯例是禁止的。

最好尝试这样的事情:

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;

答案 1 :(得分:2)

你应该使用这个

   order by  count(spieler)