我想更新从表B.数据表A,我想我可以做 类似:更新两张表?
UPDATE A
SET A.name = B.name
WHERE A.id = B.id
但很可惜,这是行不通的。
任何人都有我如何做到这一点的想法?
我想更新从表B.数据表A,我想我可以做 类似:更新两张表?
UPDATE A
SET A.name = B.name
WHERE A.id = B.id
但很可惜,这是行不通的。
任何人都有我如何做到这一点的想法?
由于您没有从子句指定您通过A/B进行别名的表,因此您的查询不起作用。
请尝试使用以下几种:(!不要笑)
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
所选答案在MariaDB上不适用于我。这一个。谢谢 ! – 2017-01-13 14:27:49
我在挠头,无法获得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
但这个工程:
UPDATE A INNER JOIN B
ON A.name = B.name
SET A.x = 1
WHERE A.x <> B.x
以上是SQL-Server,不是MySQL? – christiandev 2013-09-02 15:07:10
我不知道你是否能有别名SET子句。可能取决于你的SQL风格,但我相信因为这是一个给定的更新“A”,它是不允许的。 – 2009-07-01 13:35:15