1

15000エントリに近いテーブルAがあります。テーブルAと共通のフィールドを持つ7900エントリの2番目のテーブルBがあります。

テーブルBにも表示されるものを除いて、テーブルAのすべてのエントリを3番目の一時テーブルCに抽出する必要があります。単純に聞こえるかもしれませんが、それを行う方法が見つかりませんでした。私が得た最も近いものはこれでした:

INSERT INTO tableC
SELECT * 
FROM tableA
    INNER JOIN tableB
        ON tableA.field IS NOT tableB.field

このSQLは、tableBにあるエントリも含め、tableAにあるすべてのものを選択するだけです。

私が間違っているアイデアはありますか?

4

1 に答える 1

5

これを試してみたらどうなりますか?

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)
于 2009-06-19T18:46:27.423 に答える