Hans: mysql - Problem mit DISTINCT und ORDER BY

Beitrag lesen

Hallo,
ich habe ein Onlinegame mit einer Highscore, die in einer Tabelle gespeichert wird ("highscore"). Dann gibt es noch eine weitere Tabelle mit den Daten der Spieler ("teilnehmer"). Die spielerID der Tabelle "highscore" ist hier mit der id in der Tabelle "teilnehmer" verknüpft.

Ich möchte mir jeden Monat die besten 100 Spieler ausgeben lassen. Die Ausgabe soll zuerst nach Punkten (höchste zuerst) und dann nach Zeitverbrauch (niedrigster zuerst) geordnet werden. Folgende Abfrage funktioniert auch ganz gut:
----
SELECT highscore.punkte, highscore.zeitverbrauch,
teilnehmer.vorname, teilnehmer.nachname, teilnehmer.strasse, teilnehmer.ort, teilnehmer.email, highscore.datum
FROM teilnehmer, highscore
WHERE highscore.eintragzeit < '2007-03-01'
AND highscore.eintragzeit >= '2007-01-01'
AND highscore.spielerID = teilnehmer.id
ORDER BY highscore.punkte DESC , highscore.zeitverbrauch ASC
LIMIT 0 , 100
----

Da viele Spieler mehrmals spielen, habe ich deren Namen immer mehrfach in meiner Ausgabe. Deshalb habe ich mal DISTINCT und MAX ausprobiert, um mir jeden Spieler nur einmal anzuzeigen und die maximale Punktzahl des Spielers zu ermitteln:
----
SELECT DISTINCT highscore.spielerID,
MAX(highscore.punkte) AS punkte,
highscore.zeitverbrauch,
teilnehmer.vorname, teilnehmer.nachname, teilnehmer.strasse, teilnehmer.ort, teilnehmer.email, highscore.datum
FROM teilnehmer, highscore
WHERE highscore.eintragzeit < '2007-03-01'
AND highscore.eintragzeit >= '2007-01-01'
AND highscore.spielerID = teilnehmer.id
GROUP BY highscore.spielerID
ORDER BY punkte DESC , highscore.zeitverbrauch ASC
LIMIT 0 , 100
----

Mein Problem:
Jetzt werden mir die Spieler auch nur einmal angezeigt, und die Sortierung nach Punkten stimmt auch. Allerdings funktioniert jetzt natürlich die Sortierung nach Zeitverbrauch nicht mehr. In der Ausgabe wird mir nämlich nicht der Zeitverbrauch an der Stelle von MAX(highscore.punkte) gezeigt, sondern offensichtlich der letzte der in der Tabelle steht.

Meine Frage:
Wie bekomme ich eine Ausgabe, in der jeder Spieler nur einmal erscheint,die mir die maximale Punktzahl des Spielers anzeigt und den Zeitverbrauch bei dieser Punktzahl und die dann noch nach Punkten und Zeitverbrauch geordnet ist?

Vielen Dank und Grüße

Hans