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 ....
答案 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)