Ho una tabella ("lms_attendance") dei tempi di check-in e out degli utenti che assomiglia a questo:
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
Sto provando a creare una vista di questa tabella che produrrebbe solo il record più recente per ID utente, dandomi il valore "in" o "out", quindi qualcosa del tipo:
id user time io
2 9 1370931664 out
3 6 1370932128 out
5 12 1370933037 in
Finora sono abbastanza vicino, ma mi sono reso conto che le viste non accetteranno subquerys, il che lo sta rendendo molto più difficile. La domanda più vicina che ho ricevuto è stata:
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`
Ma quello che ottengo è:
id user time io
3 6 1370932128 out
1 9 1370931664 out
5 12 1370933037 in
4 12 1370932128 out
Che è vicino, ma non perfetto. So che l'ultimo gruppo di non dovrebbe essere lì, ma senza di esso, restituisce l'ora più recente, ma non con il suo valore IO relativo.
Qualche idea? Grazie!