这个两表关联的update语句怎么写?

kingstarer 2009-07-03 01:19:37
a和b表结构一样,均由一个key字段和一个value字段组成,其中key是主键

现在想写一个sql,把a的value值加上b表中,相同key值的记录对应的value

相当于把a表变成(select a.key, a.value + b.value from tmp_test_a a, tmp_test_b b where a.key=b.key)

举例如下:
a
key value
--- ---
001 11
002 22

b
key value
--- ---
001 11
002 22

期望将a修改成
a
key value
--- ---
001 22
002 44
...全文
104 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
inthirties 2009-07-03
  • 打赏
  • 举报
回复
或者通过视图更新


SQL> update (select nvl(b.value, 0) v1, a.value v, a.value value from a, b where
a.id=b.id(+)) set v = v+v1;

这个需要和有主键约束或者是unique的约束。
kingstarer 2009-07-03
  • 打赏
  • 举报
回复
谢谢 原来=号后面可以加sql的 
kingstarer 2009-07-03
  • 打赏
  • 举报
回复
谢谢 原来=号后面可以加sql的 
welyngj 2009-07-03
  • 打赏
  • 举报
回复
update a set value= (select sum(a.value+b.value) from b where a.key=b.key group by b.key)
inthirties 2009-07-03
  • 打赏
  • 举报
回复
SQL>update a set value = value + (select nvl(b.value, 0) from b where b.id = a.id);

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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