Tengo una tabla ("lms_attendance") de los horarios de entrada y salida de los usuarios que se ve así:
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
Estoy tratando de crear una vista de esta tabla que solo muestre el registro más reciente por ID de usuario, al tiempo que me da el valor de "entrada" o "salida", así que algo como:
id user time io
2 9 1370931664 out
3 6 1370932128 out
5 12 1370933037 in
Hasta ahora estoy bastante cerca, pero me di cuenta de que las vistas no aceptarán subconsultas, lo que lo hace mucho más difícil. La consulta más cercana que recibí fue:
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`
Pero lo que obtengo es:
id user time io
3 6 1370932128 out
1 9 1370931664 out
5 12 1370933037 in
4 12 1370932128 out
Lo cual está cerca, pero no es perfecto. Sé que el último grupo no debería estar allí, pero sin él, devuelve la última vez, pero no con su valor relativo de IO.
¿Algunas ideas? ¡Gracias!