菜鸟求大神指点oracle怎么写多表update语句,谢谢

titankwok 2014-04-29 08:41:54
A表 ID01 地址1
001 ABC

B表 ID ID01
aaa 001
aaa 002

C表 ID 地址2
aaa DEF

怎么把A表的地址1 ABC 修改成 DEF oracle11G的环境 语句怎么写啊
...全文
278 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2014-05-03
  • 打赏
  • 举报
回复
还是建议LZ把 where exists () 条件加上。
善若止水 2014-05-02
  • 打赏
  • 举报
回复
1楼的做法是对的。建议楼主按照1楼的做法把表b和表c关联后的结果作为表来保存起来,建立个id001的索引,这样更新时走索引就行了。
titankwok 2014-04-30
  • 打赏
  • 举报
回复
一楼答复的 我执行了一把 ,我数据比较大有5W条,但是执行会一直卡在那里,等了10分钟没动静
卖水果的net 2014-04-30
  • 打赏
  • 举报
回复

update a
   set a.addr1 =   (select c.addr2     from b, c   where a.id01 = b.id01  and b.id = c.id)
where exitsts(select * from b, c   where a.id01 = b.id01  and b.id = c.id)
CT_LXL 2014-04-29
  • 打赏
  • 举报
回复
引用 楼主 titankwok 的回复:
A表 ID01 地址1 001 ABC B表 ID ID01 aaa 001 aaa 002 C表 ID 地址2 aaa DEF 怎么把A表的地址1 ABC 修改成 DEF oracle11G的环境 语句怎么写啊
update a
   set a.addr1 =
       (select c.addr2
          from b, c
         where a.id01 = b.id01
           and b.id = c.id);

17,377

社区成员

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

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