我试图用表B中的数据更新表A.我想我可以做类似的事情:
UPDATE A
SET A.name = B.name
WHERE A.id = B.id
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.
任何人都知道如何做到这一点?
Joh*_*som 76
您的查询不起作用,因为您没有FROM子句来指定通过A/B存在别名的表.
请尝试使用以下内容:
UPDATE A
SET A.NAME = B.NAME
FROM TableNameA A, TableNameB B
WHERE A.ID = B.ID
Run Code Online (Sandbox Code Playgroud)
就个人而言,我更喜欢使用更明确的连接语法,即
UPDATE A
SET A.NAME = B.NAME
FROM TableNameA A
INNER JOIN TableName B ON
A.ID = B.ID
Run Code Online (Sandbox Code Playgroud)
Nic*_*las 18
对于Microsoft Access(不要笑!)......
UPDATE TableA A
INNER JOIN TableB B
ON A.ID = B.ID
SET A.Name = B.Name
Run Code Online (Sandbox Code Playgroud)
我正在挠头,无法获得John Sansom的Join语法工作,至少在MySQL 5.5.30 InnoDB.
事实证明这不起作用.
UPDATE A
SET A.x = 1
FROM A INNER JOIN B
ON A.name = B.name
WHERE A.x <> B.x
Run Code Online (Sandbox Code Playgroud)
但这有效:
UPDATE A INNER JOIN B
ON A.name = B.name
SET A.x = 1
WHERE A.x <> B.x
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
122688 次 |
| 最近记录: |