oracle多表关联更新推荐方法

表结构描述

待更新表 -表名 newTab

nameValue
电脑
手机
导管

数据来源表-表名 oldTab

goodsprice
电脑$1600
手机$12
导管$1

需求描述

将oldTab表中的price值更新到newTab的value中去,关联关系是oldTab.goods=newTab.name

oracle sql写法

begin
for temp_tab in (select a.rowid,b.price
from newTab a,oldTab b
where a.name=b.goods
)
loop
update newTab set value = temp_tab .price where
rowid = temp_tab.rowid;
end loop;
end;

记录原因

用常规sql写法,嵌套查询,一个几万数据的表,草,更新花了半个多小时,还没执行完,而这个写法,妈的1秒不到,所以必须记一下。
常规sql类似如下:

 update newTab  a 
 set a.value=(select b.price from oldTab b where a.name=b.goods)
 where exits (select 1 from oldTab c where a.name=c.goods );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值