Ich habe eine Tabelle ("lms_attendance") der Ein- und Auscheckzeiten der Benutzer, die folgendermaßen 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, eine Ansicht dieser Tabelle zu erstellen, die nur den neuesten Datensatz pro Benutzer-ID ausgibt, während ich den Wert "in" oder "out" erhalte.
id user time io
2 9 1370931664 out
3 6 1370932128 out
5 12 1370933037 in
Ich bin bisher ziemlich nah dran, aber mir wurde klar, dass Ansichten keine Unterwahlen akzeptieren, was es sehr viel schwieriger macht. Die nächste Anfrage, 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
Welches ist nah, aber nicht perfekt. Ich weiß, dass die letzte Gruppe von nicht vorhanden sein sollte, aber ohne sie gibt sie die letzte Zeit zurück, aber nicht mit ihrem relativen E / A-Wert.
Irgendwelche Ideen? Vielen Dank!