ОШИБКА 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

Я могу создать временную таблицу и сохранить результат подзапроса, а затем выполнить ОБНОВЛЕНИЕ. Но я нене хочу делать таким образом. Может кто-нибудь предложить мне лучший способ сделать это?

Ответы на вопрос(2)

Ваш ответ на вопрос