Hallo nochmal,
ich hätte jetzt doch noch mal ne kleine zusätzliche Frage ;-]
Angenommen, die "Punkte" kommen nicht aus einer Tabelle, sondern werden aus zwei verschiedenen (Begegnungen und Teilnehmer) gezählt:
SELECT t.id AS teilnehmer,
COUNT(b.gewinner) AS punkte
FROM teilnehmer t LEFT JOIN begegnungen b ON t.id = b.gewinner
GROUP BY t.id ORDER BY punkte DESC, s.id;
Dann sollte ich obiges Ergebnis doch genauso erhalten, wenn ich
SELECT t.id AS teilnehmer,
COUNT(b.gewinner) AS punkte,
(SELECT COUNT(s.id)
FROM teilnehmer t2 LEFT JOIN begegnungen b2 ON t2.id = b2.gewinner
WHERE COUNT(b2.gewinner) > punkte
) + 1 AS platzierung
FROM teilnehmer t LEFT JOIN begegnungen b ON t.id = b.gewinner
GROUP BY t.id ORDER BY punkte DESC, s.id;
ausführe, oder habe ich einen Denkfehler?
Jedenfalls zeigt mir MySQL einen Fehler bei "WHERE COUNT(b2.gewinner) > punkte"
Oder bräuchte ich an der Stelle etwa noch eine zweite Subquery?
Wäre super, wenn mir nochmal jemand irgendwie auf die Sprünge helfen könnte, muss ja auch nicht so ausführlich sein, wie die oben ;-)
Gruß, mike