多表关联sql更新语句怎么写?要求如下

合同表ht
合同所在组织id 合同编号 供应商id
fcontrolunitid fnumber fpartbid
xxx001 合同1 yyy101
xxx001 合同2 yyy102
xxx001 合同3 yyy103
xxx001 合同4 yyy201
xxx001 合同5 yyy202
xxx001 合同6 yyy203
xxx001 合同7 yyy301
xxx001 合同8 yyy302
xxx001 合同9 yyy303
xxx002 合同10 yyy101…
xxx003 合同11 yyy101…
xxx004 合同12 yyy101…
… … …

供应商表gys
供应商所在组织id 供应商id 供应商名称
fadmincuid fid fname
xxx001 yyy101 供应商AA
xxx001 yyy102 供应商BB
xxx001 yyy103 供应商CC
xxx002 yyy201 供应商AA
xxx002 yyy202 供应商BB
xxx002 yyy203 供应商CC
xxx003 yyy301 供应商AA
xxx003 yyy302 供应商BB
xxx003 yyy303 供应商CC
… … …

组织表zz
组织id

fid
xxx001

xxx002

xxx003

合同表中合同4-合同9的供应商id错误,正确的供应商应该是相同组织id对应的**同名**的供应商
因为供应商名称相同导致错误,如何通过oracle sql语句update更新为正确的。
表中数据较多,求大神指点,谢谢!

正确的供应商应该是相同组织id对应的**同名**的供应商
对这里不太理解,请详细说明。

begin
for res in (
select fid ,fadmincuid from 供应商表gys
)
loop
update 合同表ht ht
set ht.fpartbid = res.fadmincuid
where pm.fpartbid = res.fid;
end loop;
end;

问题我也不是十分清楚,感觉是这样,你可以试试,错了告诉我。

mysql多表更新(跨表更新) http://www.data.5helpyou.com/article252.html

oracle数据库
合同表中合同所引用的供应商必须与当前合同属于同一个组织。
不同组织有重名的供应商,根据供应商id,以及所在组织区分。
需要把合同表中的供应商id更新为如下:
更新为与当前合同在同一个组织下,且与错误的供应商名称相同,的供应商的id,
不知道这么描述是否清楚?
感谢!!!

感谢给位,已用临时办法解决!
因为合同表中供应商id和供应商表中id是关联字段,现在要update合同表的供应商id,导致update语句报错。
方法1:
临时解决方法是把合同表的id也取出来,并把关联查询到的信息create到一个临时表
然后根据合同表的id和临时表的id关联,然后update合同表的供应商id。
方法2:
如果不使用临时表,可用2楼的方法,使用游标和循环,但是2楼的语句需要修改一下。