Eu tenho uma tabela ("lms_attendance") dos horários de check-in e check-out dos usuários que se parece com isso:
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
Estou tentando criar uma exibição dessa tabela que produziria apenas o registro mais recente por ID de usuário, enquanto me fornecia o valor "in" ou "out", algo como:
id user time io
2 9 1370931664 out
3 6 1370932128 out
5 12 1370933037 in
Estou bem perto até agora, mas percebi que as visualizações não aceitam subconsultas, o que está tornando muito mais difícil. A consulta mais próxima que recebi foi:
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`
Mas o que eu recebo é:
id user time io
3 6 1370932128 out
1 9 1370931664 out
5 12 1370933037 in
4 12 1370932128 out
O que é próximo, mas não perfeito. Eu sei que o último grupo de não deveria estar lá, mas sem ele, ele retorna o tempo mais recente, mas não com seu valor relativo de IO.
Alguma ideia? Obrigado!