Ini adalah variasi dari masalah "terbesar-n-per-grup" yang muncul di StackOverflow beberapa kali per minggu.
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;
Cara kerjanya adalah kita mencoba mencari baris (a2) yang memiliki accessid dan userid yang sama, dan tanggal atau waktu lebih awal dari baris a1. Ketika kita tidak dapat menemukan baris sebelumnya, maka a1 harus be baris paling awal.
Re komentar Anda, saya baru saja mencobanya dengan data sampel yang Anda berikan. Inilah yang saya dapatkan:
+----------+------------+----------+
| accessid | date | time |
+----------+------------+----------+
| 1 | 2009-08-15 | 01:01:01 |
| 2 | 2009-09-01 | 14:01:01 |
+----------+------------+----------+
Saya menggunakan MySQL 5.0.75 di Mac OS X.