我有以下 SQL 代码:
SELECT
`table1`.`field1`
, `view1`.`newfield1`
FROM
`table1`
INNER JOIN `GCOTDA2`.`view1`
ON (`table1`.`id1` = `view1`.`id1`) AND (`table1`.`id2` = `view1`.`id2`);
查询工作正常,但现在我想将 view1.newfield1 复制到 table1.field1。因此,我写下了以下声明:
UPDATE `table1`
SET
`table1`.`field1` = `view1`.`newfield1`
FROM
`table1`
INNER JOIN `view1`
ON (`table1`.`id1` = `view1`.`id1`) AND (`table1`.`id2` = `view1`.`id2`);
但是,更新不起作用,我收到此错误消息:
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM
`table1`
INNER JOIN `view1`
' at line 4
我检查了谷歌和本网站的其他问题,例如:How do I UPDATE from a SELECT in SQL Server?和 Error Code: 1064 in mysql没有运气。 (MySQL 服务器 5.5.27) 我需要有人照亮我,谢谢!
最佳答案
试穿一下尺码:
UPDATE 'table1` t JOIN `view1` v
ON t.id1 = v.id1 AND t.id2 = v.id2
SET t.field1 = v.newfield1
关于mysql - SQL 使用 View 更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19730449/