> select user_id from person p1, person p2 where p1.user_id<>p2.user_id > and p1.name = p2.name
Your query is fine. It's slow because it's doing a full scan of p1, and for each row in p1 it's doing a full scan of p2. That makes the time O(n^2). It should go much faster if you add an index on name. You may also need to reverse the order of the predicates so SQLite will pick the right index -- the optimizer may handle it correctly anyway, but I'm not sure. Regards