Ich habe zwei Tabellen Benutzer und Protokoll. Ich möchte der Benutzertabelle mit Protokollen beitreten und den letzten Protokolleintrag erhalten. Ich habe festgestellt, dass die Verwendung der Gruppe durch die Zeilen innerhalb der Gruppe nicht sortiert ist. Daher kann ich die letzte Protokollzeile nicht abrufen.Sqlite sortierte Zeilen innerhalb der Gruppe von
USER:
ID | Name
--------------------
1 | John
2 | Mike
LOG:
L_ID | ACTION | DATE | USERID
----------------------------------
1 | OPEN | '1 DEC' | 1
2 | CLOSE | '3 DEC' | 1
3 | WRITE | '2 DEC' | 1
4 | OPEN | '5 DEC' | 2
5 | CLOSE | '3 DEC' | 2
Mit dieser Tabelle haben das Ergebnis Ich mag würde, ist:
2 Mike 4 OPEN '5 DEC'
1 Jhon 2 CLOSE '3 DEC'
Ich weiß, dass die folgende Abfrage nicht funktioniert Da die Zeilen in der Gruppe nicht sortiert sind:
Select * from user join log on ID=USERID group by ID order by DATE DESC,L_ID
Auch die folgenden nicht da arbeiten nur das richtige Datum, aber nicht die Aktionen zurückgegeben:
Select ID,Name,Action,Max(Date) from user join log on ID=USERID group by ID order by DATE DESC, L_ID
Jede Idee Vorschlag, wie die Abfrage zu schreiben, die das richtige Ergebnis zurück?
, was das Ergebnis sein wird, wenn zwei Aktion für Benutzer-ID 1 hat dasselbe Datum? – hkutluay
@hkutluay Sie haben Recht Tabelle Protokoll hat auch eine ID nach Datum, ID wird zum Sortieren verwendet –