更新两个表?
我想用表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