Dit is een variatie op het "grootste-n-per-groep"-probleem dat meerdere keren per week op StackOverflow voorkomt.
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;
De manier waarop dit werkt, is dat we proberen een rij (a2) te vinden die dezelfde toegangs- en gebruikers-ID heeft, en een eerdere datum of tijd dan de rij a1. Als we geen eerdere rij kunnen vinden, dan moet a1 zijn de vroegste rij.
Wat betreft je opmerking, ik heb het net geprobeerd met de voorbeeldgegevens die je hebt verstrekt. Dit is wat ik krijg:
+----------+------------+----------+
| accessid | date | time |
+----------+------------+----------+
| 1 | 2009-08-15 | 01:01:01 |
| 2 | 2009-09-01 | 14:01:01 |
+----------+------------+----------+
Ik gebruik MySQL 5.0.75 op Mac OS X.