可以。
如有A,B两个表:
A:字段cust_id,cust_name
B:字段cust_id,cust_name
如何用一个UPDATE语句关联字段cust_id把A中cust_name改为相对应的B表中的cust_name;
updateaseta.cust_name=b.cust_namefroma
joinb
ona.cust_id=b.cust_id
ORACLE下是:
updateA表a
setcust_name=(selectb.cust_namefromB表bwhereb.cust_id=a.cust_id)
whereexists(select1fromB表bwhereb.cust_id=a.cust_id);
'cust_name='处可以支持多个字段
如(cust_name,cust_sex)=(selectb.cust_name,b.cust_sexfrom.
扩展资料
UPDATE与多表关联更新
SELECT u.USER_NAME_,g.desc_, u.email_, u.mobile_
FROM BDF2_GROUP g, BDF2_GROUP_MEMBER gm, UBP_USER u
where g.id_=gm.group_id_ and gm.username_=u.user_name_
AND g.desc_ IN (
'310115-02',
'310118-02',
'310112-02'
)
order by u.USER_NAME_
update语句可以关联其他表。
如两个表数据分别如下:
表1:
ID NAME SOCRE
1 张三 100
2 李四 90
3 王五 80
表2:
ID NAME SOCRE
1 张三 98
2 李四 70
现在要按照表2中ID和表1一致的将SCORE改成表2中的值,可用如下语句:
update 表1 set SCORE=表2.SCORE from 表1 inner join 表2 on 表1.ID=表2.ID where 表1.ID in (select ID from 表2)
最后结果应为:
ID NAME SOCRE
1 张三 98
2 李四 70
3 王五 80
方法一:update 表2 set state=1 where 表2.parent_id in (SELECT 表1.id FROM 表1 WHERE name='小猫咪')
文法2:update b set b.state=1 FROM 表1 a,表2 b where b.parent_id=a.id and a.name='小猫咪'
方法一肯定可以用,方法2在SqlServer里可用,其它数据库未经验证