用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);
本文介绍了一种使用SQL更新表数据的方法,特别是如何从一个表中获取数据并更新另一个表中的相应记录,包括直接更新及计算后更新的方式。

被折叠的 条评论
为什么被折叠?



