Удаление дубликатов из разных таблиц

Есть две таблицы, А и B. В обеих разное количество колонок и их названий. Надо удалить из таблицы А полностью строку, если ее колонка aaa содержит совпадение с колонкой bbb в таблице В.

не срабатывает:

DELETE A FROM A JOIN B WHERE A.aaa=B.bbb;

Ответы (1 шт):

Автор решения: Roman Konoval

Есть два варианта.

Первый это использовать EXISTS:

DELETE FROM A a
WHERE EXISTS (
   SELECT 1
   FROM B b
   WHERE b.bbb = a.aaa
);

Второй - это IN с подзапросом:

DELETE FROM A
WHERE aaa IN (
   SELECT bbb
   FROM B
);
→ Ссылка