質問があります。
DELETE FROM A
WHERE i NOT IN
( SELECT i FROM B WHERE j = 1
UNION select i from C
UNION select i from D
);
基本的i
に、テーブルB、C、またはDでフィールドが発生しないAのすべての行を削除します。
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;
(すべてのテーブルのスキーマにidフィールドがあると想定します)
私の質問は、上記が次の解決策を使用した3つのテーブルのシナリオに拡張されるかどうかということだと思います。
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