Това е разновидност на проблема с „най-големите n-на група“, който се появява в StackOverflow няколко пъти седмично.
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;
Начинът, по който работи това, е, че се опитваме да намерим ред (a2), който има същия accessid и userid и по-ранна дата или час от ред a1. Когато не можем да намерим по-ранен ред, тогава a1 трябва да е най-ранният ред.
Относно вашия коментар, току-що го опитах с примерните данни, които предоставихте. Ето какво получавам:
+----------+------------+----------+
| accessid | date | time |
+----------+------------+----------+
| 1 | 2009-08-15 | 01:01:01 |
| 2 | 2009-09-01 | 14:01:01 |
+----------+------------+----------+
Използвам MySQL 5.0.75 на Mac OS X.