Wählen Sie die Zeile mit dem letzten Datum pro Benutzer

Ich habe eine Tabelle ("lms_attendance") der Benutzer " check-in-und out-Zeiten, die wie folgt aussieht:

id  user    time    io (enum)
1   9   1370931202  out
2   9   1370931664  out
3   6   1370932128  out
4   12  1370932128  out
5   12  1370933037  in

Ich versuche zu schaffen, einen Blick auf diese Tabelle, würde die Ausgabe nur den aktuellsten Datensatz pro Benutzer-id, während er mir die "in" oder "out" - Wert, so etwas wie:

id  user    time    io
2   9   1370931664  out
3   6   1370932128  out
5   12  1370933037  in

Ich bin mir ziemlich nah, so weit, aber ich habe gemerkt, dass die Ansichten nicht akzeptieren subquerys, das macht es viel schwieriger. Die nächste Abfrage, die ich bekam, war :

select 
    `lms_attendance`.`id` AS `id`,
    `lms_attendance`.`user` AS `user`,
    max(`lms_attendance`.`time`) AS `time`,
    `lms_attendance`.`io` AS `io` 
from `lms_attendance` 
group by 
    `lms_attendance`.`user`, 
    `lms_attendance`.`io`

Aber was ich bekomme ist :

id  user    time    io
3   6   1370932128  out
1   9   1370931664  out
5   12  1370933037  in
4   12  1370932128  out

Das ist in der Nähe, aber nicht perfekt. Ich weiß, dass die Letzte Gruppe, indem Sie die dort nicht sein sollen, aber ohne es, gibt es die meisten neueren Zeit, aber nicht mit seiner relativen IO Wert.

Irgendwelche Ideen?
Danke!

möglich, Duplikat der so wählen Sie den letzten Satz von datierten Aufzeichnungen aus einer mysql-Tabelle
Gehen Sie zurück zu der Anleitung. Sie werden sehen, dass es bietet Lösungen für dieses problem sowohl mit als auch ohne (korreliert und uncorelated) Unterabfragen.
technisch, wie ich wies in meiner Antwort, dies ist ein Duplikat der alle 700 Fragen mit dem greatest-n-pro-Gruppe - tag.
was ist 'io (enum)'?
Ich hatte eine Spalte namens "IO", das steht für "in" oder "out", es war eine enum-Typs mit möglichen Werten "in" oder "out". Dies wurde verwendet, um zu verfolgen, wenn die Menschen aktiviert in die und aus der a-Klasse.

InformationsquelleAutor Keith | 2013-06-11

Schreibe einen Kommentar