यह "महानतम-एन-प्रति-समूह" समस्या का एक रूपांतर है जो स्टैक ओवरफ्लो पर प्रति सप्ताह कई बार आता है।
SELECT
a1.accessid,
a1.date,
a1.time
FROM
accesslog a1
LEFT OUTER JOIN
accesslog a2
ON (a1.accessid = a2.accessid AND a1.userid = a2.userid
AND (a1.date > a2.date OR a1.date = a2.date AND a1.time > a2.time))
WHERE a1.userid = '1234'
AND a2.accessid IS NULL;
जिस तरह से यह काम करता है वह यह है कि हम एक पंक्ति (ए 2) को खोजने का प्रयास करते हैं जिसमें एक ही एक्सेसिड और उपयोगकर्ता आईडी है, और पंक्ति ए 1 की तुलना में पहले की तारीख या समय है। जब हमें पहले वाली पंक्ति नहीं मिलती है, तो a1 को होना . होना चाहिए सबसे पहली पंक्ति।
अपनी टिप्पणी दें, मैंने आपके द्वारा प्रदान किए गए नमूना डेटा के साथ अभी कोशिश की है। यहाँ मुझे क्या मिलता है:
+----------+------------+----------+
| accessid | date | time |
+----------+------------+----------+
| 1 | 2009-08-15 | 01:01:01 |
| 2 | 2009-09-01 | 14:01:01 |
+----------+------------+----------+
मैं मैक ओएस एक्स पर MySQL 5.0.75 का उपयोग कर रहा हूं।