Am 01.02.2018 um 09:07 schrieb Burkhard Schultheis:
> Wir haben eine Tabelle mit diversen Spalten, darunter eine user_id und
> getrennten Spalten für Datum und Uhrzeit.
Getrennte Spalten für Datum und Uhrzeit ist hier ein Design-Fehler der
DB-Tabelle. Nimm datetime als Typ und EINE Spalte.
Mit den ganzen date_format-funktionen kannst du doch daraus Datum und
Zeit machen.
SELECT DATE_FORMAT(..., "%Y-%m-%d") as datum, DATE_FORMAT(..., "%H:%i")
AS uhrzeit
Ich möchte nun für jede
> user_id Datum und Uhrzeit des letzten Eintrags abfragen. Das letzte
> Datum bekomme ich ja ganz leicht:
>
> select user_id, max(date) from <tabelle> group by 1;
>
> Aber wie mache ich das, dass ich auch noch die letzte Uhrzeit zu diesem
> Datum dazu bekomme. Ich müsste ja max(time) für dieses user_id und
> max(date) abfragen.
>
> Wie schaffe ich das?
Ich nehme an, du willst die letzte Uhrzeit am letzten Datum haben?
Wenn du den Designfehler nicht beheben willst, dann geht in etwa sowas
SELECT MAX(CONCAT(`date`, ' ', `time`)) FROM ....
Ich habe date und time bewußt in backticks geschrieben, weil du mit
unglücklichen Spaltennamen wie date aufpassen mußt, weil die reservierte
Wörter sind.
Grüße, Gérôme