我有两张桌子,看起来都像

id  name  value
===================
1   Joe     22
2   Derk    30

我需要根据每个表中的检查名称将值的值从tableA复制到tableB。

对于这个UPDATE语句有什么建议吗?


当前回答

将数据存储在临时表中

Select * into tempTable from table1

现在更新列

 UPDATE table1
    SET table1.FileName = (select FileName from tempTable where tempTable.id = table1.ID);

其他回答

将数据存储在临时表中

Select * into tempTable from table1

现在更新列

 UPDATE table1
    SET table1.FileName = (select FileName from tempTable where tempTable.id = table1.ID);
    UPDATE    cities c,
          city_langs cl
    SET       c.fakename = cl.name
   WHERE     c.id = cl.city_id

更新为多 set value = table .value 从表b where table .name =table .name

如果你正在使用安全更新模式(并且你会得到一个错误,表明你已经尝试更新一个没有使用KEY列的WHERE表),第二种选择也是可行的,通过添加:

UPDATE TableB  
SET TableB.value = (  
SELECT TableA.value  
    FROM TableA  
    WHERE TableA.name = TableB.name  
)  
**where TableB.id < X**  
;

第二种可能是,

UPDATE TableB 
SET TableB.value = (
    SELECT TableA.value 
    FROM TableA
    WHERE TableA.name = TableB.name
);