Saya memiliki tabel ("lms_attendance") waktu masuk dan keluar pengguna yang terlihat seperti ini:
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
Saya mencoba membuat tampilan tabel ini yang hanya akan menampilkan rekaman terbaru per id pengguna, sambil memberi saya nilai "masuk" atau "keluar", jadi seperti ini:
id user time io
2 9 1370931664 out
3 6 1370932128 out
5 12 1370933037 in
Sejauh ini saya cukup dekat, tetapi saya menyadari bahwa penayangan tidak akan menerima subquerys, yang membuatnya jauh lebih sulit. Pertanyaan terdekat yang saya dapatkan adalah:
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`
Tapi yang saya dapatkan adalah:
id user time io
3 6 1370932128 out
1 9 1370931664 out
5 12 1370933037 in
4 12 1370932128 out
Yang mendekati, tapi tidak sempurna. Saya tahu bahwa grup terakhir seharusnya tidak ada di sana, tetapi tanpanya, grup ini mengembalikan waktu terakhir, tetapi tidak dengan nilai IO relatifnya.
Ada ide? Terima kasih!