Chris Hunter
09.02.2004, 16:36
also ich habe wiedermal ein problem. und zwar folgendes:
ich programmiere gerade ein punkteanalyse tool für ein onlinegame.
dafür habe ich eine tabelle in der folgendes gespeichert wird:
id
username
punktestand
zeitpunkt
jedesmal wenn ich mich in das tool einlogge wird dann von jedem user in meiner allianz der punktestand in die datenbank eingetragen.
z.b. so
heinrich 100 6000 (timestamp)
heinrich 100 6100
heinrich 110 6200
alois 500 6000
alois 300 6100
jetzt will ich eine tabelle machen wo folgendes angezeigt wird:
Username
Punkte
Letzte Punkte änderung am (dort soll der timestamp rein)
sortiert werden soll die liste entweder nach zeitpunkt ASC oder DESC
jetzt mach ich folgendes query:
SELECT * FROM aktive GROUP BY name ORDER BY zeit DESC oder ASC
jetzt zu meinem eigentlich problem:
durch das group by wird immer nur ein datensatz zu einem bestimmten namen rausgesucht und dann sortiert.
wie kann ich mySQl dazu zwingen den datensatz eines namens zu nehmen, der den größten timestamp hat, weil im moment nimmt er datensätze wie z.b. so:
heinrich 100 6000
alois 500 6000
und mit der ergebnismenge kann ich nicht nach zeitpunkt auf- oder absteigend sortieren.
das problem tritt nur bei der zeit auf, also ich kann den namen und den punktestand richtig sortieren. ich versteh das nicht!
hoffe ihr versteht was ich meine und könnte mir helfen...
ich programmiere gerade ein punkteanalyse tool für ein onlinegame.
dafür habe ich eine tabelle in der folgendes gespeichert wird:
id
username
punktestand
zeitpunkt
jedesmal wenn ich mich in das tool einlogge wird dann von jedem user in meiner allianz der punktestand in die datenbank eingetragen.
z.b. so
heinrich 100 6000 (timestamp)
heinrich 100 6100
heinrich 110 6200
alois 500 6000
alois 300 6100
jetzt will ich eine tabelle machen wo folgendes angezeigt wird:
Username
Punkte
Letzte Punkte änderung am (dort soll der timestamp rein)
sortiert werden soll die liste entweder nach zeitpunkt ASC oder DESC
jetzt mach ich folgendes query:
SELECT * FROM aktive GROUP BY name ORDER BY zeit DESC oder ASC
jetzt zu meinem eigentlich problem:
durch das group by wird immer nur ein datensatz zu einem bestimmten namen rausgesucht und dann sortiert.
wie kann ich mySQl dazu zwingen den datensatz eines namens zu nehmen, der den größten timestamp hat, weil im moment nimmt er datensätze wie z.b. so:
heinrich 100 6000
alois 500 6000
und mit der ergebnismenge kann ich nicht nach zeitpunkt auf- oder absteigend sortieren.
das problem tritt nur bei der zeit auf, also ich kann den namen und den punktestand richtig sortieren. ich versteh das nicht!
hoffe ihr versteht was ich meine und könnte mir helfen...