2014-05-15 51 views
2

我在File 1中有380,000條記錄。我在File 2有超過一百萬。我寫了一個簡單的查詢來返回在兩個特定字段上匹配的記錄。在SQL Server 2005中的兩個表中匹配

select * 
from file1, file2 
where file1.field = file2.field 

的問題是不止一次這樣file2更多的是重複file1.field我得到491000場比賽回來。我只需要第一場比賽。基本上只是尋找一個標誌,如果file1.fieldfile2或不。我確信這是一個簡單的操作員,我只是一個自學成才的初學者,並不知道它。任何幫助是極大的讚賞。

謝謝!

回答

2

您可以使用EXISTS

SELECT * 
FROM file1 
WHERE EXISTS (SELECT * 
       FROM file2 
       WHERE file2.field = file1.field) 
+2

簡單,效果很好。謝謝! –

+0

@ rj.brown:很高興爲您效勞!) – potashin

+0

您沒有顯示他特別要求的「標誌」。 – RosSQL

0
select * 
    , (select top 1 1 from file2 f2 where f2.field=f1.field) as flag 
from file1 f1 

您將有一個 「1」 或列中的NULL稱爲[國旗]

0

您可以用不同的關鍵字

select Distinct * 
from file1, file2 
where file1.field = file2.field