我有两个表,其中很少有公共列和一个ID列。我需要从另一个表Table2更新表1中的ID列。但是表2中存在重复性,导致表1中的重复更新。
create table x_a1
( col1 text,
col2 text,
col_id integer
);
create table x_a2
( col1 text,
col2 text,
col_id integer
);
insert into x_a1 values('A1','B1',1);
insert into x_a1 values('A1','B1',2);
insert into x_a1 values('A1','B1',3);
insert into x_a1 values('A1','B1',4);
insert into x_a2 values('A1','B1',null);
insert into x_a2 values('A1','B1',null);
insert into x_a2 values('A1','B1',null);
insert into x_a2 values('A1','B1',null);
因此,我尝试使用此查询来更新它:-
update x_a2 a2
set col_id= a1.col_id
from x_a1 a1
where a1.col1 =a2.col1
and a1.col2 =a2.col2
但是输出结果如下:- 从x_a2中选择*
col1 col2 Col_id
----------------------
A1 B1 1
A1 B1 1
A1 B1 1
A1 B1 1
所需的输出为:-
col1 col2 Col_id
----------------------
A1 B1 1
A1 B1 2
A1 B1 3
A1 B1 4