Hallo liebe Mitglieder,
meine erste Frage hier in diesem Forum und eigentlich konnte ich sowas bislang immer umgehen. Ich verzweifel allerdings gerade an einer, scheinbar, simplen Abfrage. Ich bin mir sicher, ihr könnt mir direkt helfen.
Folgendes Szenario:
Tabelle logdaten
changed_id, INT 5, Primary Key, Auto Increment
user_id, INT 5
status_id, INT 5
changed_timestamp, VARCHAR 255
comment, VARCHAR 255
insert_from, INT 5
In diese Tabelle werden Statusänderungen geschrieben. Die status_changed_id ist AI und der PK. Die user_id ist der entsprechende Benutzer (bzw. Benutzer ID) und der changed_timestamp ein UNIX Timestamp der protokolliert, wann der neue Eintrag geschrieben wurde.
Inhalt:
changed_id | user_id | status_id | changed_timestamp
1 , 20 , 4 , 1498025053
2 , 21 , 4 , 1498025083
3 , 21 , 3 , 1498027025
4 , 21 , 4 , 1498030348
5 , 21 , 3 , 1498030407
6 , 21 , 1 , 1498030556
Ich möchte jetzt gerne zu jedem Benutzer (user_id) die LETZTE (anhand des timestamps) vorkommende Zeile selektieren.
SELECT user_id,status_id FROM logdaten GROUP BY user_id
führt zu einem
user_id | status_id
20, 4
21 , 4
Ich habe schon SUB Selects probiert, verschiedene Group Kriterien und alles was mir so eingefallen ist aber im Endeffekt lieferte mir keiner das gewünschte Ergebnis. In diesem Fall bräuchte ich:
user_id | status_id
20 , 4
21, 1
Und obwohl ich 2 Spalten habe, die mir entsprechend weiterhelfen können (der timestamp und der PK) steh ich gerade voll auf dem Schlauch.
Für Hilfe wäre ich sehr dankbar!
Grüße
meine erste Frage hier in diesem Forum und eigentlich konnte ich sowas bislang immer umgehen. Ich verzweifel allerdings gerade an einer, scheinbar, simplen Abfrage. Ich bin mir sicher, ihr könnt mir direkt helfen.
Folgendes Szenario:
Tabelle logdaten
changed_id, INT 5, Primary Key, Auto Increment
user_id, INT 5
status_id, INT 5
changed_timestamp, VARCHAR 255
comment, VARCHAR 255
insert_from, INT 5
In diese Tabelle werden Statusänderungen geschrieben. Die status_changed_id ist AI und der PK. Die user_id ist der entsprechende Benutzer (bzw. Benutzer ID) und der changed_timestamp ein UNIX Timestamp der protokolliert, wann der neue Eintrag geschrieben wurde.
Inhalt:
changed_id | user_id | status_id | changed_timestamp
1 , 20 , 4 , 1498025053
2 , 21 , 4 , 1498025083
3 , 21 , 3 , 1498027025
4 , 21 , 4 , 1498030348
5 , 21 , 3 , 1498030407
6 , 21 , 1 , 1498030556
Ich möchte jetzt gerne zu jedem Benutzer (user_id) die LETZTE (anhand des timestamps) vorkommende Zeile selektieren.
SELECT user_id,status_id FROM logdaten GROUP BY user_id
führt zu einem
user_id | status_id
20, 4
21 , 4
Ich habe schon SUB Selects probiert, verschiedene Group Kriterien und alles was mir so eingefallen ist aber im Endeffekt lieferte mir keiner das gewünschte Ergebnis. In diesem Fall bräuchte ich:
user_id | status_id
20 , 4
21, 1
Und obwohl ich 2 Spalten habe, die mir entsprechend weiterhelfen können (der timestamp und der PK) steh ich gerade voll auf dem Schlauch.
Für Hilfe wäre ich sehr dankbar!
Grüße