Как использовать подзапрос в запросе на удаление / обновление в mysql

Я использую базу данных mysql 5.0.77, используя запрос:

Delete from IPADDRESS where visitdate Not in (SELECT max(visitdate) FROM IPADDRESS WHERE USERNAME='MGSH0002') and USERNAME='MGSH0002' 

Я получаю эту ошибку при выполнении:

Вы не можете указать целевую таблицу IPADDRESS для обновления из пункта

    Конечно, не лучшее решение, но для вашей проблемы это будет трюк:

     delete i1 from IPADDRESS i1, IPADDRESS i2 where i1.username = i2.username and i1.username = 'MGSH0002' and i1.visitdate < i2.visitdate 

    Альтернативным и гораздо более разумным решением является следующее утверждение:

     delete i1 from IPADDRESS i1, (select max(visitdate) visitdate from IPADDRESS where username = 'MGSH0002') temp where i1.username = 'MGSH0002' and i1.visitdate < temp.visitdate 

    Вы не можете, к сожалению, MySql этого не допускает.

    В настоящее время вы не можете обновить таблицу и выбрать из той же таблицы в подзапросе.

    Из:

    http://dev.mysql.com/doc/refman/5.0/en/update.html