Проблема проста, удалите повторяющиеся строки в table
Поэтому, если таблица:
| id | name |
| 1 | aaaaa |
| 2 | bbbbb |
| 3 | aaaaa |
результатом будет:
| id | name |
| 1 | aaaaa |
| 2 | bbbbb |
Это запрос, который я использую:
delete t1
from Table t1
, Table t2
where t1.name = t2.name
and t1.Id > t2.Id
приведенный выше запрос работает нормально.
Однако я немного изменяю запрос:
delete
from Table
where Id in (select t1.Id from Table t1, Table t2 where t1.name = t2.name and t1.Id > t2.Id)
при его выполнении появляется сообщение об ошибке: "Код ошибки: 1093. Вы не можете указать таблицу таблицы целей для обновления в предложении FROM",
Мой вопрос в том, почему этот подзапрос не может быть выполнен правильно? Какая история за сценой
заранее спасибо.
Поскольку выбор таблицы помещает блокировку чтения в записи, которую вы пытаетесь изменить.