使用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
