update这个sql怎么写?

bianjijianjie 2011-05-31 10:42:48
(select colA,colB,doc from tableA;) --把他当作 tableA 表

update tableB a set (a.colA,a.colB)=(select colA,colB,doc from tableA ..........)
接下来怎么写?
我 就想更新 tableB 的 colA 和 colB 字段,他们的值是上面的第一条sql 查出来的,
两个关联条件 就是 tableA 的 doc 字段= tableB的 doc 字段,,,
sql 该怎么写?
我 记得 上面的 update sql 好像 还有 什么 where exists 什么的 ?
怎么写?
...全文
90 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiao3612736 2011-06-01
  • 打赏
  • 举报
回复
oracle 9i以后的版本有这个函数,不知道你是不是用oracle
merge into tableA a
using tableB b
on a.doc = b.doc
when matched then
update set a.colA = b.colB
你可以看下API,这个函数执行时效率,对两张表只需要检索一次
gelyon 2011-05-31
  • 打赏
  • 举报
回复
update tableB a set (a.colA,a.colB)=(select colA,colB from tableA where doc = a.doc and rownum=1) where exists(select 1 from tableA where doc = a.doc )

17,377

社区成员

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

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