update语句可以关联其它表吗

2025-02-23 10:14:53
推荐回答(3个)
回答1:

可以。

如有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_


回答2:

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

回答3:

方法一: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里可用,其它数据库未经验证