SQL-Code:
select id, article_id, user_id from foo where id in (
select _inner.id from foo _inner where _inner.user_id = 1
group by _inner.article_id, _inner.id
having _inner.id = (select min(_inner2.id) from foo _inner2 where _inner2.article_id = _inner.article_id)
order by _inner.id
)
Das funktioniert.. Allerdings weiss ich nicht, wie schnell das ist
Edit: eine Million Zeilen durchpflügt mein Rechner in unter einer Sekunde - reicht das?