MYSQL-Query (GROUP BY, ORDER.)

#1418051
Lesenswert?

Ich habe grad ein Brett vor'm Kopf... Wie kann ich möglichst elegent 
folgendes Problem formulieren (vereinfacht):

Tabelle:

ID       NameID        Datum
=====================================
1        1             2009-09-16 00:00:01
2        1             2009-09-16 00:00:02
3        1             2009-09-16 00:00:03
4        2             2009-09-16 00:00:04
5        2             2009-09-16 00:00:05

6        1             2009-09-17 00:00:01
7        1             2009-09-17 00:00:02

8        1             2009-09-18 00:00:01
9        1             2009-09-18 00:00:02
10       2             2009-09-18 00:00:03
11       3             2009-09-18 00:00:04
12       3             2009-09-18 00:00:05


Als Ergebnis meiner Abfrage möchte ich folgendes bekommen:
ID       NameID        Datum
===============================================
9        1             2009-09-18 00:00:01
10       2             2009-09-18 00:00:03
12       3             2009-09-18 00:00:05


Mein Versuch (vereinfacht) war folgender:

SELECT `ID`, `NameID`, `Datum` FROM `Tabelle` WHERE `Datum` LIKE 
'2009-09-18 %' AND ORDER BY `Datum` DESC GROUP BY `NameID`

Das ganze funktioniert aber leider nicht, da man erst nach dem 
Gruppieren sortieren kann. Drehe ich das um, so erhalte ich nicht den 
"spätesten" Eintrag am Tag pro Person, sondern den Ersten.

Sollte man das ganze mit einem verschachtelten SELECT lösen oder gibt es 
eine einfachere Variante?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren