J'ai une table ("lms_attendance") des heures d'arrivée et de départ des utilisateurs qui ressemble à ceci :
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
J'essaye de créer une vue de cette table qui n'afficherait que l'enregistrement le plus récent par identifiant d'utilisateur, tout en me donnant la valeur "in" ou "out", donc quelque chose comme ça :
id user time io
2 9 1370931664 out
3 6 1370932128 out
5 12 1370933037 in
J'en suis assez proche pour l'instant, mais j'ai réalisé que les vues n'acceptent pas les sous-enchères, ce qui rend les choses beaucoup plus difficiles. La requête la plus proche que j'ai obtenue est :
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`
Mais ce que je reçois est :
id user time io
3 6 1370932128 out
1 9 1370931664 out
5 12 1370933037 in
4 12 1370932128 out
Ce qui est proche, mais pas parfait. Je sais que le dernier groupe par ne devrait pas être là, mais sans lui, il renvoie le temps le plus récent, mais pas avec sa valeur IO relative.
Des idées ? Merci !