J'ai un tableau ("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'essaie de créer une vue de cette table qui afficherait uniquement l'enregistrement le plus récent par identifiant d'utilisateur, tout en me donnant la valeur «in» ou «out», donc quelque chose comme:
id user time io
2 9 1370931664 out
3 6 1370932128 out
5 12 1370933037 in
Je suis assez proche jusqu'à présent, mais j'ai réalisé que les vues n'accepteraient pas les sous-requêtes, ce qui rend les choses beaucoup plus difficiles. La requête la plus proche que j'ai reçue était:
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 j'obtiens c'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 de by ne devrait pas être là, mais sans lui, il renvoie l'heure la plus récente, mais pas avec sa valeur IO relative.
Des idées? Merci!