Hi Andreas,
select max(laenge) as lang, schnitt, name from highscore
group by name order by lang desc;
ich habe Dein DB-Schema nicht ganz verstanden.
Aber Dein Problem klingt so, als würdest Du auch auf der rechten Seite
_einen_ Datensatz aus Deiner Tabelle holen wollen.
Das tust Du aber nicht - Du mischst gespeicherte und berechnete Werte
(weil Du "max" verwendest).
Was Du tatsächlich willst, ist,
- zuerst die Datensätze nach Spielern zu gruppieren,
- davon aber jeweils nur den einen Datensatz mit dem höchsten Wert zu
nehmen (DISTINCT, ORDER BY, LIMIT 1?), und- das Ergebnis dieser Auswahl dann wiederum nach dem Wert zu sortieren.
Ich weiß im Moment nicht, ob diese doppelte Sortierung mit einem einzigen
SELECT geht; es kann sein, daß dafür ein SubSelect erforderlich wäre, was
mySQL nicht direkt unterstützt.
In diesem Fall könntest Du aber den ersten SELECT in eine temporäre Tabelle
lenken und aus dieser mit dem zweiten die endgültige Sortierung heraus-
fischen.
So isses, habe nach langem verzweifelten Suchen bei mysql.com folgende Seite gefunden, die genau mein Ziel nochmal in einem Subselect zeigt und die MySQL-Lösung vorstellt, finde ich aber ziemlich umständlich im Gegensatz zum Subselect:
http://www.mysql.com/doc/e/x/example-Maximum-column-group-row.html
Trotzdem vielen Dank
Viele Grüße
Michael
Jo, auch von mir; Falls Du zum Ausgleich für Deine Bemühungen ein bisschen spielen willst: das Spiel liegt nicht (wie fälschlicherweise angegeben) unter schigold.de, sondern unter http://schigold.de/spiel/.