我想更新從表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