我有一个用户签入和签出时间的表(“ lms _ publications”) ,看起来像这样:
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
我试图创建这个表的一个视图,它只输出每个用户 id 的最新记录,同时给出“ in”或“ out”值,所以类似于:
id user time io
2 9 1370931664 out
3 6 1370932128 out
5 12 1370933037 in
到目前为止,我已经很接近了,但是我意识到视图不会接受子查询,这使得它变得更加困难。我得到的最接近的问题是:
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`
但我得到的是:
id user time io
3 6 1370932128 out
1 9 1370931664 out
5 12 1370933037 in
4 12 1370932128 out
很接近,但不完美。我知道最后一组 by 不应该在那里,但是如果没有它,它将返回最近的时间,但是不会返回它的相对 IO 值。
有什么想法吗? 谢谢!