ОШИБКА 1093 (HY000): Вы не можете указать целевую таблицу 'a' для обновления в предложении FROM
У меня есть этот запрос
UPDATE trh_adminLoginDate SET superseded = true WHERE EXISTS
(SELECT * FROM trh_adminLoginDate AS a2 WHERE a2.adminId = a.adminId AND a2.loginDate > a.loginDate AND a2.clientPlatform = a.clientPlatform)
и стол выглядит так.
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| dateCreated | datetime | NO | | NULL | |
| version | int(11) | NO | | NULL | |
| dateModified | datetime | NO | | NULL | |
| adminId | bigint(20) | NO | MUL | NULL | |
| clientPlatform | varchar(255) | YES | | NULL | |
| loginDate | datetime | YES | | NULL | |
| superseded | tinyint(1) | NO | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
Когда я выполняю этот запрос, я получаю следующую ошибку:
ERROR 1093 (HY000): You can't specify target table 'a' for update in FROM clause
Я могу создать временную таблицу и сохранить результат подзапроса, а затем выполнить ОБНОВЛЕНИЕ. Но я нене хочу делать таким образом. Может кто-нибудь предложить мне лучший способ сделать это?