mysql - SQL 使用 View 更新表

标签 mysql sql sql-update sql-view

我有以下 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/

相关文章:

c# - C# 的 mysql 存储过程出错

mysql - 我可以在 SELECT 查询中重复使用计算字段吗?

sql - 如何明智地按一组增加列

mySQL 用 WHERE 更新

mysql - 存储哈希值或生成哈希值的 bigint 变量哪个更好

mysql - 根据相互喜欢连接MySQL中的两个表

mysql - 需要输出记录

mysql - 如何在Mysql中从另一个表向表中添加一列?

php - 数组更新语句清空 SQL 表中的记录。 - 更新

sql - 使用 INNER JOIN 从 SQL 转换 UPDATE 以便在 MySQL 中使用