我试着在这里搜索,但没有运气。没有什么似乎是同一个问题。
我有这个选择:
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“您无法在FROM子句”
中为更新指定目标表'a'
所有问题都是子查询需要使用相同的id代码获取最大数据(md5_skuwhse)
如何使此更新生效?
答案 0 :(得分:2)
您可以使用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'