"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

MySQL Abfrage

kleinerChemiker 12.09.2009 - 22:36 1081 5
Posts

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4281
Code:
SELECT * FROM sphere_chars WHERE account LIKE '%account%' GROUP BY uid ORDER BY logout DESC

Jeder Account hat im Normalfall mehrere uid's (Spielercharaktere). Für jedes ein/ausloggen wird eine neue Zeile eingefügt. Jetzt hätte ich gerne von einem Account von jeder uid die "letzte" Zeile, das ist die Zeile, wo logout (DATETIME) am größten ist. Derzeit bekomme ich leider immer die erste Zeile, allerdings die ge-GROUPten zeilen nach logout geordnet. D.h. es wird erst GROUP BY ausgeführt und dann ORDER BY, kann ich das irgendwie umdrehen?

tia

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
du könntest ein subselect einbauen.

Code:
WHERE logout = (SELECT MAX(logout) FROM account)

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
SELECT *,MAX(logout) etc.

//edit: den subselect brauchst du gar nicht, da im Falle eines GROUP BYs die MAX funktion ja das Maximum einer group liefert.
Bearbeitet von Spikx am 12.09.2009, 22:45

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4281
Zitat von Spikx
SELECT *,MAX(logout) etc.

//edit: den subselect brauchst du gar nicht, da im Falle eines GROUP BYs die MAX funktion ja das Maximum einer group liefert.

da liefert er mir die erste zeile und hängt MAX(logout) an. dann probier ich mal die subselects, glaub 4.1 hatte das eh schon.

edit:
auch mit subselect wird die erste zeile geliefert :(
hab mir das bischen überlegt, ich müßte im subselect max(logout) finden, das maximal für die uid ist.
Bearbeitet von kleinerChemiker am 12.09.2009, 22:54

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
Code:
WHERE logout IN (SELECT MAX(logout) FROM account GROUP BY uid)

maybe?

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4281
eine gute Idee, das könnte klappen. Werd ich dann zu Hause gleich mal ausprobieren.
thx
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz