УДАЛИТЬ из ТАБЛИЦЫ, используя СУЩЕСТВУЮЩИЕ из той же таблицы

У меня есть дубликаты таблиц MYSQL. Я хотел бы удалить дубликаты. Но MySQL выдает сообщение об ошибке. Разве MYSQL и MARIA DB не поддерживают операторы SQL, которые выполняются в Oracle?

удалить из ESTONIA E, где существует (выбрать 1 из ESTONIA x, где x.city=E.city и x.id<>E.id);

🤔 А знаете ли вы, что...
MySQL поддерживает репликацию данных для обеспечения отказоустойчивости и масштабируемости.


40
2

Ответы:

Решено

Вместо этого вы можете использовать удаление самостоятельного присоединения:

DELETE e1
FROM ESTONIA e1
INNER JOIN ESTONIA e2
    ON e2.city = e1.city AND
       e2.id <> e1.id; 

Exist существует в MySQL, см. ниже

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

Источник Кликните сюда

Но я считаю, что в вашем случае вам нужно будет использовать IN вместо EXIST

DELETE 
 FROM table_name
 WHERE column_name IN
(SELECT column_name FROM table_name WHERE condition);