2011-10-11 76 views
3

我知道這事做的語法,但我正在尋找一種方式來做到以下幾點:的MySQL更新查詢問題

UPDATE modules 
SET ServerID = boards.ServerID 
FROM boards,modules 
WHERE modules.ID = boards.ID 

這並不工作。我使用MySQL

回答

3

試試這個:

UPDATE boards,modules 
SET modules.ServerID = boards.ServerID 
WHERE modules.ID = boards.ID 

http://dev.mysql.com/doc/refman/5.0/en/update.html

閱讀MYSQL UPDATE語法,你也可以執行更新操作涉及多個表...

UPDATE items,month SET items.price=month.price 
WHERE items.id=month.id; 

上例顯示使用逗號 運算符的內部聯接,但多表UPDATE語句可以使用SELECT語句(如LEFT JOIN)中允許的任何類型的 聯接。

+0

你或許應該前綴'ServerID'與'modules'以避免不明確的列引用 – Phil

+0

燁修復謝謝@菲爾 – Gajahlemu

+0

+1精美的作品:http://www.sqlize.com/F5Wla424tg – mellamokb

1
UPDATE modules 
SET ServerID = (SELECT b.ServerID FROM boards b WHERE b.ID = modules.ID) 
+0

+1精美的作品:http://www.sqlize.com/6H3lvZk80B – mellamokb

-1

UPDATE語法FROM

不包括是爲SELECT。

,如果你想將二者結合起來:

UPDATE modules SET ServerID = (SELECT boards.ServerID FROM boards WHERE boards.ID = modules.ID) 
+0

改寫爲清楚起見 – galchen

1
UPDATE modules 
INNER JOIN boards 
ON modules.ID = boards.ID 
SET modules.ServerID = boards.ServerID 
+0

+1精美的作品:http://www.sqlize.com/Ai4Bo7cixg – mellamokb