使用select语句更新多行
我有这些表和值:
Table1
------------------------
ID | Value
------------------------
2 | asdf
4 | fdsa
5 | aaaa
Table2
------------------------
ID | Value
------------------------
2 | bbbb
4 | bbbb
5 | bbbb
我想使用Table1中的值和它们各自的ID更新Table2中的所有值。
有没有办法用一个简单的SQL查询来做到这一点?
运行一个选择,以确保它是你想要的
SELECT t1.value AS NEWVALUEFROMTABLE1,t2.value AS OLDVALUETABLE2,*
FROM Table2 t2
INNER JOIN Table1 t1 on t1.ID = t2.ID
更新
UPDATE Table2
SET Value = t1.Value
FROM Table2 t2
INNER JOIN Table1 t1 on t1.ID = t2.ID
另外,考虑使用BEGIN TRAN
以便在需要时可以将其回滚,但请确保在满意时COMMIT
。
如果您在两个表中都有ID,则以下工作:
update table2
set value = (select value from table1 where table1.id = table2.id)
也许更好的方法是加入:
update table2
set value = table1.value
from table1
where table1.id = table2.id
请注意,此语法在SQL Server中可用,但在其他数据库中可能不同。
您可以使用别名来改进查询:
UPDATE t1
SET t1.Value = t2.Value
FROM table1 AS t1
INNER JOIN
table2 AS t2
ON t1.ID = t2.ID
链接地址: http://www.djcxy.com/p/16881.html