怎样实现两张表多个字段的更新

z_junjie 2007-02-06 02:48:08
例如A表 存在一下字段:
AID A1 A2 A3 A4

B表中存在字段:
BID B1 B2 B3 B4

如果实现用B表的所有字段更新A表中相应的字段,在MS SQL Server里面可以写成:
update A
set A1=B.B1,A2=B.B2,A3=B.B3,A4=B.B4
from A,B
where A.AID=B.BID

但是在oracle 9i里面怎么样,好像向SQL Server不一样?
请各位大侠帮助!
...全文
288 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
玉伟 2011-04-07
  • 打赏
  • 举报
回复
update a
set (a.a1,a.a2,a.a3,a.a4) = (
select b.b1,b.b2,b.b3,b.b4
from b
where a.aid=b.aid)
where exists (select 1 from b where a.aid=b.bid)


这个是没有问题的。。
wangzk0206 2007-02-06
  • 打赏
  • 举报
回复
update a
set (a1,a2,a3,a4) = (
select b.b1,b.b2,b.b3,b.b4
from b
where a.aid=b.aid)
where exists (select 1 from b where a.aid=b.bid)

加上EXISTS会好些 保证ID之间关联只能返回一条记录 否则报错
wangzk0206 2007-02-06
  • 打赏
  • 举报
回复
update A
set (A1,a2,a3,a4) = (
select b.b1,b.b2,b.b3,b.b4
from B
where A.AID=B.BID)
xxhsjp 2007-02-06
  • 打赏
  • 举报
回复
create table a (aid type,a1 type,a2 type,a3 type)
as select * from b

好像省事点

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧