It happens with IN and subselects. Try this equivalent:
DELETE FROM table1 t1
WHERE EXISTS (
SELECT * FROM table2 t2
WHERE
t1.id=
t2.id and t2.id1=422682 and t2.id2=422682
);
It should result in indexed reads (that's at least what my own
observations suggest), 'cause internally it's probably implemented as a
JOIN.
It would be nice to have DELETE with JOIN (like for example MySQL has)
in such scenarios, but FB doesn't support this syntax AFAIK.
regards
Tomasz