मेरे पास उपयोगकर्ताओं के चेक-इन और इस तरह दिखने वाले समय की एक तालिका ("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 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
जो करीब है, लेकिन सही नहीं है। मुझे पता है कि अंतिम समूह वहां नहीं होना चाहिए, लेकिन इसके बिना, यह सबसे हालिया समय लौटाता है, लेकिन इसके सापेक्ष आईओ मूल्य नहीं है।
कोई विचार? धन्यवाद!