更新两个表?

我想用表B中的数据更新表A.我想我可以做类似于:

UPDATE A SET A.name = B.name WHERE A.id = B.id 

但唉,这是行不通的。

任何人都有我如何做到这一点的想法?

您的查询不起作用,因为您没有指定您通过A / B别名的表的FROM子句。

请尝试使用以下内容:

 UPDATE A SET A.NAME = B.NAME FROM TableNameA A, TableNameB B WHERE A.ID = B.ID 

就我个人而言,我更喜欢使用更明确的连接语法来清晰,即

 UPDATE A SET A.NAME = B.NAME FROM TableNameA A INNER JOIN TableName B ON A.ID = B.ID 

对于Microsoft Access(不要笑!)…

 UPDATE TableA A INNER JOIN TableB B ON A.ID = B.ID SET A.Name = B.Name 

我一直在挠头,至less在MySQL 5.5.30 InnoDB无法获得John Sansom的Join语法。

事实certificate,这是行不通的。

 UPDATE A SET Ax = 1 FROM A INNER JOIN B ON A.name = B.name WHERE Ax <> Bx 

但是这个工作:

 UPDATE A INNER JOIN B ON A.name = B.name SET Ax = 1 WHERE Ax <> Bx