假设有两个表,test1与test2,表结构相同,如下:
id | name | age |
---|---|---|
1 | ||
2 | ||
3 |
现在,想将表test2中的数据移到test1中,根据id相等的规则,不同数据库的SQL语句会有不同:
SQL Server:
update test1
set test1.name=test2.name,test1.age=test2.age
from test1
inner join test2
on test1.id=test2.id
Oracle:
update test1
set (test1.name,test1.age)=
(select test2.name,test2.age from test2 where test2.id=test1.id)
MySQL:
update test1,test2
set test1.name=test2.name,test1.age=test2.age
where test1.id=test2.id
最后,还有一个通用方法^ _ ^:
update test1
set name=(select name from test2 where test2.id=test1.id),
age=(select age from test2 where test2.id=test1.id)