Как мне выполнить то, что я пытаюсь выполнить с помощью следующего запроса?
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 Нельзя указать целевую таблицу 'externaltable' для обновления в предложении FROM
Редактировать: Я пытаюсь очиститьсоздать таблицу регистрации событий, удалив все, кроме самой последней записи каждого типа для каждого процесса.