|email | lastsenddate |
-------------------------
| email1 | 2023-06-05 |
-------------------------
| email1 | 2024-12-01 |
-------------------------
| email2 | 2024-11-25 |
-------------------------
| email2 | 2025-01-12 |
-------------------------
< /code>
Я написал этот запрос: < /p>
SELECT `email`, MAX(`lastsenddate`) FROM `dupeTable` GROUP BY `email`
< /code>
, которые дают мне этот результат: < /p>
|email | lastsenddate |
-------------------------
| email1 | 2024-12-01 |
-------------------------
| email2 | 2025-01-12 |
-------------------------
< /code>
Используя принятый ответ отсюда: MySQL Удалить дубликаты записей, но сохраняйте последние < /p>
Я написал этот запрос: < /p>
DELETE FROM `dupeTable` WHERE `email` NOT IN (SELECT MAX(`lastsenddate`) FROM `dupeTable` GROUP BY `email`);
< /code>
Но я получаю ошибку, которая считывает: < /p>
#1093 - You can't specify target table 'dupeTable' for update in FROM clause
В MySQL 5.7 я уже создал таблицу, чтобы разместить свои дубликаты. Данные выглядят так: < /p> [code]|email | lastsenddate | ------------------------- | email1 | 2023-06-05 | ------------------------- | email1 | 2024-12-01 | ------------------------- | email2 | 2024-11-25 | ------------------------- | email2 | 2025-01-12 | ------------------------- < /code> Я написал этот запрос: < /p> SELECT `email`, MAX(`lastsenddate`) FROM `dupeTable` GROUP BY `email` < /code> , которые дают мне этот результат: < /p> |email | lastsenddate | ------------------------- | email1 | 2024-12-01 | ------------------------- | email2 | 2025-01-12 | ------------------------- < /code> Используя принятый ответ отсюда: MySQL Удалить дубликаты записей, но сохраняйте последние < /p> Я написал этот запрос: < /p> DELETE FROM `dupeTable` WHERE `email` NOT IN (SELECT MAX(`lastsenddate`) FROM `dupeTable` GROUP BY `email`); < /code> Но я получаю ошибку, которая считывает: < /p> #1093 - You can't specify target table 'dupeTable' for update in FROM clause [/code] Что я сделал неправильно и как это исправить?