我知道这事做的语法,但我正在寻找一种方式来做到以下几点:的MySQL更新查询问题
UPDATE modules
SET ServerID = boards.ServerID
FROM boards,modules
WHERE modules.ID = boards.ID
这并不工作。我使用MySQL
我知道这事做的语法,但我正在寻找一种方式来做到以下几点:的MySQL更新查询问题
UPDATE modules
SET ServerID = boards.ServerID
FROM boards,modules
WHERE modules.ID = boards.ID
这并不工作。我使用MySQL
试试这个:
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)中允许的任何类型的 联接。
UPDATE modules
SET ServerID = (SELECT b.ServerID FROM boards b WHERE b.ID = modules.ID)
+1精美的作品:http://www.sqlize.com/6H3lvZk80B – mellamokb
UPDATE语法FROM
不包括是为SELECT。
,如果你想将二者结合起来:
UPDATE modules SET ServerID = (SELECT boards.ServerID FROM boards WHERE boards.ID = modules.ID)
改写为清楚起见 – galchen
UPDATE modules
INNER JOIN boards
ON modules.ID = boards.ID
SET modules.ServerID = boards.ServerID
+1精美的作品:http://www.sqlize.com/Ai4Bo7cixg – mellamokb
你或许应该前缀'ServerID'与'modules'以避免不明确的列引用 – Phil
烨修复谢谢@菲尔 – Gajahlemu
+1精美的作品:http://www.sqlize.com/F5Wla424tg – mellamokb