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