2011-12-05 3 views
-1

からレコードを除いてテーブルからすべてを選択します。私は名前の1列を持つテーブルAを持っている、そしてファイル「test.txtのは、」含まれるファイル

111111AAAA 
222222BBBB 
3333DDDDDD 
..... 

をtest.txtの中にレコードが同じを持っています「a」の列を入力します。 "test.txt"のレコードを除いてAからすべてを選択するにはどうすればよいですか?

更新: 私は3つの方法を試しましたが、結果は等しくありません。なんと変わった!

// 7073 records -- Using NOT IN 
SELECT * from mt_users WHERE TERMINAL_NUMBER_1 NOT IN (SELECT TERMINAL_NUMBER FROM A); 

// 7075 records -- Using NOT EXISTS 
SELECT * from mt_users WHERE NOT EXISTS (SELECT 1 FROM A WHERE A.TERMINAL_NUMBER = mt_users.TERMINAL_NUMBER_1); 

// 7075 records -- Using LEFT JOIN 
SELECT * FROM mt_users m LEFT JOIN A a ON m.TERMINAL_NUMBER_1 = a.TERMINAL_NUMBER WHERE a.TERMINAL_NUMBER IS NULL; 
+0

Windows、linux? – ajreal

答えて

1

を作成するコードで)

SELECT a FROM A WHERE a NOT IN(...) 

あなたは(のコンテンツを生成する必要があります。あなたが/カント場合は、それはのような「ではありません」しようとしたくありませんファイルからnewTableに移動し、各フィールドの先頭または末尾に余分なスペースがないことを確認してください。

+0

「1」を選択して「*」を選択する理由を説明できますか? – Emerald214

+1

何も特別な理由はありません([exists 1 vs exists *](http://stackoverflow.com/a/1597487/1027198))私はちょうどそれを使用することに慣れています。それは私のために "より良い"ように見えます。 –

1

ステップ1.異なるテーブルにあるtest.txtからレコードを置きます。 AFはあまりにも私の最初の答えだろう書いたものをやって

ステップ2.

SELECT a from tableA WHERE a NOT EXISTS (SELECT a FROM newTable) 
1

。あなたが最初にすべてのレコードを置くクエリ

関連する問題