2009-06-19 21 views
1

テーブルAには、15000個に近いエントリがあります。MySQLテーブルから別のテーブルにあるレコードを削除する方法

テーブルBに表示されているエントリを除いて、テーブルAのすべてのエントリを第3の一時テーブルCに抽出する必要があります。 、私はそれを行う方法を見つけたhavent。 TABLEBにあっても

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

このSQLはちょうどにtableAですべてを選択し、エントリ:私が得た最も近いがこれでした。

私は間違っていますか?

答えて

6

これを試すとどうなりますか?

INSERT INTO tableC 
SELECT * 
FROM tableA 
WHERE tableA.field NOT IN (SELECT tableB.field FROM tableB) 

それとも、代替構文

INSERT INTO tableC 
SELECT * 
FROM tableA 
WHERE NOT EXISTS (SELECT * FROM tableB WHERE tableB.field = tableA.field) 
+0

優れたをEXISTS試すことができます!これは魅力的に機能しました。単純にサブセレクトを使用していたわけではありませんでした。 –

+0

うれしかったです! –

関連する問題