www.5213.net > OrAClE 关联两表写upDAtE语句

OrAClE 关联两表写upDAtE语句

两种方法:-- 方法1.UPDATE 表2SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A)WHERE EXISTS ( SELECT 1 FROM 表1 WHERE 表1.A = 表2.A) -- 方法2MERGE INTO 表2 USING 表1ON ( 表2.A = 表1.A ) -- 条件是 A 相同WHEN MATCHED THEN UPDATE ...

update table1 a set a.c = (select b.b from table2 b where a.a=b.a)另外,如果在a.a=b.a的情况下,如果b.b有多个值的话也会报错 这个时候,你可以考虑用b.b的最大值或最小值 update table1 a set a.c = (select max(b.b) from table2 b where...

方法如下: 有以下两张表: 根据test2表中的id和test1表中的id关联,修改test1表中name字段,语句如下: update test1 a set a.name=(select b.name from test2 b where a.id=b.id) where a.id in (select id from test2);更新后,test1表中结果:

两表关联更新用如下方法。 有以下两张表: 根据test2表中的id和test1表中的id关联,修改test1表中name字段,语句如下: update test1 a set a.name=(select b.name from test2 b where a.id=b.id) where a.id in (select id from test2); 更新后...

不管是update还是merge每次都是只能修改一站表,还没听说一次修改两张表的。 如果分别修改那就比较简单了(先确定B列是否唯一,如果不唯一,那么可能存在修改扩大的问题,所以可能还要修改语句),update a set a.d=2 where a.b=(select b from E ...

--Oracle 里面字段有汉字的设计都是自找麻烦;--中的内容是字段名称,实际表不可能是你这种表示的名称。update set =(select c. from c, b where c.id=b. and .=b.);

select * from tableA a , tableB b where a.name = b.name(+)

参考如下语法 update student A set (A.name,a.dq) = (select B.bname,b.bdq from newstudent B where B.Bid = A.id and A.dq = 10 ) where exists (select 1 from newstudent B where B.Bid = A.id and A.dq = 10 );

如果test_table1和test_table2是关联的才能叫更新,采用renfengjun1986的方法即可, 如果两个表是没有关联的那就应该叫插入数据,采用nietiezheng 的方法。

应该有一个A、B两表一一对应的字段,这边假设字段名就是sys_guid UPDATE B SET B.USER_ID = (SELECT ID FROM A WHERE A.sys_guid=B.sys_guid);

网站地图

All rights reserved Powered by www.5213.net

copyright ©right 2010-2021。
www.5213.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com