質問

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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top