That is clear. Thanks.
On Tue, 28 Jan 2014 05:13:43 +0300, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> martin.nzioki@gmail.com writes:
>> create table _test1 (id int not null primary key, c2 int);
>> insert into _test1 (id) select * from generate_series(1, 5);
>
>> create table _tmp_test2 (id_fk int not null);
>> insert into _tmp_test2 (id_fk) select id from _test1 limit 2;
>
>> update _test1 set c2 = 7 where id in (select id from _tmp_test2);
>
> This is a FAQ ... that statement is perfectly valid per SQL standard,
> it just doesn't do what you expect, because the sub-select's "id" is
> taken as an outer reference to _test1's id column.
>
> regards, tom lane