Подтвердить что ты не робот

Удалить - я не могу указать целевую таблицу?

Почему этот запрос не работает?

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

4b9b3361

Ответ 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 будут генерировать временную таблицу вместо прямого доступа.

Изменить - убедитесь, что вы указываете идентификатор таблицам, которые вы используете, так как они вложены и потребуют уникальный идентификатор для каждой таблицы.