MySQL別のテーブルにあるテーブルのレコードを削除する方法
-
06-07-2019 - |
質問
15000エントリに近いテーブルAがあります。テーブルAの共通フィールドを持つ7900エントリの2番目のテーブルBがあります。
3番目の一時テーブルCに、テーブルBにも表示されるエントリを除く、テーブルAからすべてのエントリを抽出する必要があります。最も近いものはこれでした:
INSERT INTO tableC
SELECT *
FROM tableA
INNER JOIN tableB
ON tableA.field IS NOT tableB.field
このSQLは、tableBにあるエントリも含め、tableAのすべてを選択します。
どこがおかしいのですか?
解決
これを試したらどうなりますか?
INSERT INTO tableC
SELECT *
FROM tableA
WHERE tableA.field NOT IN (SELECT tableB.field FROM tableB)
または、代替のEXISTS構文を試すことができます
INSERT INTO tableC
SELECT *
FROM tableA
WHERE NOT EXISTS (SELECT * FROM tableB WHERE tableB.field = tableA.field)
所属していません StackOverflow