pgsql-bugs@postgresql.org writes:
> UPDATE test1 SET value = 10 FROM test1 t1 INNER JOIN test2 ON t1.extid=test2.extid WHERE t1.id=1;
> This expression update all record i table "test1".
Yup, that's what it should do. "FROM test1 t1" adds an additional table
reference that's unconnected to the update target table. You should
have written
UPDATE test1 SET value = 10
FROM test2 WHERE test1.extid=test2.extid AND test1.id=1;
regards, tom lane