用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);