mysql - 无法在 FROM 子句中指定更新目标表 - Mysql 5.7.10 -衍生合并不起作用

标签 mysql

我有以下查询:

update tblwerknemerdienst toUpdate
set datumtot = (select subdate(datumvanaf,1)
    from (select * from tblwerknemerdienst) nextDienst
    where nextDienst.Werknemer = toUpdate.Werknemer
    and nextDienst.datumvanaf > toUpdate.DatumVanaf
    order by DatumVanaf
    LIMIT 1)
WHERE DatumTot IS NULL;

该查询在 MySql 5.7.10 以外的 MySql 版本上运行良好。我在网上搜索了一下,发现必须设置衍生_合并=关闭,但遗憾的是这没有效果,查询仍然失败并出现相同的错误。 我还尝试了几种不同的方法来重写查询,但都无济于事。 我是否遗漏了什么或者有其他方法可以实现此目的?

最佳答案

最后,我通过在过程中重写整个过程来解决这个问题,其中我使用游标来执行查询并获取必要的数据。然后,我根据游标中选择的字段执行更新语句。

这似乎是在不同版本的 MySql 上可靠地执行所需操作的唯一方法。

关于mysql - 无法在 FROM 子句中指定更新目标表 - Mysql 5.7.10 -衍生合并不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45613041/

相关文章:

mysql - 如何组合重复行只返回一个重复数据实例?

mysql - 学说 - 数据库表示

mysql - SQL ORDER BY 想法

php - 如何将数据值传递到表单?

javascript - SQL 数据和 JavaScript - 最佳实践

mysql - 使用单个查询更新两个表

mysql - 错误 : MySQLSyntaxErrorException - select command denied to user

c# - 首先使用代码在 MySQL 中创建 NVARCHAR 列?

java - Hibernate:如果外键为空,则按链接表中的字段排序

python - 在 Django 1.8 中创建自定义查询