ユーザーのチェックインとチェックアウトの時間のテーブル( "lms_attendance")は次のようになります。
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
これは近いですが、完璧ではありません。最後のgroup byは存在すべきではないことを知っていますが、それがないと、最新の時刻が返されますが、相対IO値は返されません。
何か案は?ありがとう!