Oracle中 如何用一个表的数据更新另一个表中的数据
准备阶段
这里有两张表,关联查询下结果:
我这里要用
表二 gy_jibing t 的 t.jibingid 值
插入到
表一siim.yb_jbdmzdbf t1 的t1.yyxh 中。
select t1.*, t.jibingid from siim.yb_jbdmzdbf t1
inner join gy_jibing t on t1.gldm=t.icd10
where exists (select t.jibingid from gy_jibing t where t1.gldm=t.icd10)
3.两张表如下图:
表一table1
表二 table2
sql查询:
- 最容易想到的办法:通过子查询 ,直接 update ,如下:
update table1 set table1.val = (select val from table2 where table1.idd = table2.idd);
image.png
问题:我们遇到了e1情况,即table1中06对应的值被改变了–>val变成了null(即图中的空白);
这并不是我们的本意,故做出如下改进。
2. 加入限制条件,对于 table1中有值,但是table2中无值的idd字段,不做修改;
update table1 set val = (select val from table2 where table1.idd = table2.idd)
where exists (select 1 from table2 where table1.i