Удалить - я не могу указать целевую таблицу?
Почему этот запрос не работает?
DELETE FROM recent_edits
WHERE trackid NOT IN
(SELECT DISTINCT history.trackid
FROM history JOIN recent_edits ON history.trackid=recent_edits.trackid
GROUP BY recent_edits.trackid)
Я получаю это сообщение: "Вы не можете указать целевую таблицу" recent_edits "для обновления в предложении FROM
Ответы
Ответ 1
Попробуйте таким образом
DELETE FROM recent_edits
WHERE trackid NOT IN
(select * from (SELECT DISTINCT history.trackid
FROM history JOIN recent_edits ON history.trackid=recent_edits.trackid
GROUP BY recent_edits.trackid) as t);
Ответ 2
Вы не можете выполнить пост-обработку таблицы, которая заблокирована для удаления. используя hack select * from (query)
, поскольку состояния Nicola будут генерировать временную таблицу вместо прямого доступа.
Изменить - убедитесь, что вы указываете идентификатор таблицам, которые вы используете, так как они вложены и потребуют уникальный идентификатор для каждой таблицы.