У меня есть запрос.
DELETE FROM A
WHERE i NOT IN
( SELECT i FROM B WHERE j = 1
UNION select i from C
UNION select i from D
);
В основном удалите все строки в A, где поле i
не встречается в таблицах B, C или D. Если это было просто:
DELETE FROM A
WHERE i NOT IN
( SELECT i FROM B
);
Тогда это можно легко сделать с помощью левого соединения
DELETE A FROM A
LEFT JOIN B
ON A.i = B.i
WHERE B.id is NULL;
(Предположим, что в каждой таблице есть поле идентификатора в схеме)
Полагаю, мой вопрос заключается в следующем:расширить сценарий с тремя таблицами с помощью следующего решения?
DELETE A FROM A
LEFT JOIN B
ON A.i = B.i AND B.j = 1
LEFT JOIN C
ON A.i = C.i
LEFT JOIN D
ON A.i = D.i
WHERE B.id is NULL
AND C.id is NULL
AND D.id is NULL