MySQL Удалить в подзапросе

0

Проблема проста, удалите повторяющиеся строки в 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",

Мой вопрос в том, почему этот подзапрос не может быть выполнен правильно? Какая история за сценой

заранее спасибо.

Теги:
subquery

1 ответ

3

Поскольку выбор таблицы помещает блокировку чтения в записи, которую вы пытаетесь изменить.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню