求个SQL脚本,请各位大侠帮忙~
前提:
有2张表,A1、A2,
A1 中有 fields1,fields2 两个字段,
A2 中有 num,fields1,fields2 三个字段;
A2 表对A1的外键是 fields2 ;
A2表对A1表为多对1的映射。
问题描述:
先需要将A2表的字段 fields1 更新为 A1 表中的fields1;A1、A2表中的记录条数未知。
例如:A1表中有如下数据:
fields1 fields2
001 abc
002 bcd
014 cde
...
A2表中有如下数据:
num fields1 fields2
1 0 abc
2 1 abc
3 1 abc
4 0 bcd
5 0 bcd
6 0 cde
.....
A2表更新结果如下:
num fields1 fields2
1 001 abc
2 001 abc
3 001 abc
4 002 bcd
5 002 bcd
6 014 cde
PS:谢谢各位大侠啦
------解决方案--------------------update A2 t set t.fields1 =A1.fields1 WHERE t.fields2 =(SELECT fields2 FROM A1)
------解决方案--------------------
SQL code
create or replace procedure update_Job as
begin
for varCode in (select a.fields1,a.fields2 from A1 a) loop
for varStr in (select a.num,a.fields1,a.fields2 from A2 a
where a.fields2 = varCode.Fields2 and a.fields1 != varCode.Fields1) loop
update A2 t
set t.fields1 = varCode.Fields1
where t.num = varStr.Num;
commit;
end loop;
end loop;
end update_Job;