用一个表的记录更新另外一个表.

用table_1的address, phone_number更新table_2的address,phone_number,


注意:

1.set 后面加上要更新的列,有多个要更新的列时,加上多个列,

2.where 后面加上TABLE_1和TABLE_2的关联列,有多个关联列时,加上多个列.

3.rownum用来处理取到的值不止一条时,用第一个取到的值来更新.


处理流程:

先从table_2表取一条数据,通过这条数据去table_1表里面找,找到0条数据就不更新,找到1条数据就更新,找到2条以上就报错.
如果取的这条数据不报错,就接着取下一条,一直循环到所有数据都取完,如果循环过程中任何一条报错,则中止运行,所有的更新都不生效.


示例1如下:

--直接用table_1的值填充table_2
UPDATE table_2
   SET (table_2.address, table_2.phone_number) =
          (SELECT table_1.address, table_1.phone_number
             FROM table_1
            WHERE     table_2.id = table_1.id
                  AND table_2.name = table_1.name
                  AND ROWNUM = 1
          );

示例2如下:

--用table_1的值计算后填充table_2
UPDATE table_2 a
   SET sumcome =
          (SELECT SUM (come)
             FROM table_1 b
            WHERE b.id = a.id);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值