gpt4 book ai didi

MySQL使用子查询更新,错误1093

转载 作者:行者123 更新时间:2023-11-29 08:13:53 25 4
gpt4 key购买 nike

我尝试在这里搜索,但没有成功。似乎没有什么是同样的问题。

我有这个选择:

SELECT a.whse, a.sku, a.data, a.dt_exp FROM volume_hist_fin a
WHERE a.data = (
SELECT MAX(b.data)
FROM volume_hist_fin b
WHERE b.md5_skuwhse = a.md5_skuwhse
)
GROUP BY whse, sku, a.data

它有效。我现在正在尝试进行更新。本次更新:

UPDATE volume_hist_fin a SET a.dt_exp = '2013-10-09'
WHERE a.data = (
SELECT MAX(b.data)
FROM volume_hist_fin b
WHERE b.md5_skuwhse = a.md5_skuwhse
)

但我收到错误:

1093 "You can't specify target table 'a' for update in FROM clause"

所有的问题都是子查询需要使用相同的ID代码(md5_skuwhse)获取最大数据

如何才能使此更新生效?

最佳答案

您可以使用JOIN来做到这一点

UPDATE volume_hist_fin a JOIN
(
SELECT md5_skuwhse, MAX(data) max_data
FROM volume_hist_fin
GROUP BY md5_skuwhse
) b
ON a.md5_skuwhse = b.md5_skuwhse
AND a.data = b.max_data
SET a.dt_exp = '2013-10-09'

关于MySQL使用子查询更新,错误1093,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21002946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com