如何通过以下查询完成我想要完成的任务?
DELETE SomeDB.outertable
FROM SomeDB.logging AS outertable
WHERE outertable.log_id NOT IN
(
SELECT SomeDB.f.log_id
FROM
(
SELECT aa.*, MAX(aa.log_id) AS max_log_id
FROM SomeDB.logging AS aa
WHERE aa.operation_status = -1
GROUP BY aa.process_id
UNION ALL
SELECT bb.*, MAX(bb.log_id) AS max_log_id
FROM SomeDB.logging AS bb
WHERE bb.operation_status = 1
GROUP BY bb.process_id
UNION ALL
SELECT cc.*, MAX(cc.log_id) AS max_log_id
FROM SomeDB.logging AS cc
WHERE cc.operation_status = 0
GROUP BY cc.process_id
)
AS x
INNER JOIN SomeDB.logging AS f
ON f.process_id = x.process_id
AND f.log_id = x.max_log_id
)
根据网络上的一些研究,我已经尝试了几种变体,但我总是收到以下错误:
错误代码:1093 您不能在 FROM 子句中指定目标表 'outertable' 进行更新
编辑:我正在尝试通过删除每个进程的每种类型的最后一条记录之外的所有记录来清理事件记录表。