匹配SQL Server 2005中的两个表

时间:2014-05-15 20:52:36

标签: sql sql-server sql-server-2005

我在File 1中有380,000条记录。 File 2我有超过一百万。我写了一个简单的查询来返回两个特定字段匹配的记录。

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

问题是file1.fieldfile2重复多次,所以我得到了491,000个匹配。我只需要第一场比赛。基本上只是在file1.field处于file2时才查找标记。我确信有一个简单的操作员,我只是一个自学成才的初学者而且不知道。非常感谢任何帮助。

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用EXISTS

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

答案 1 :(得分:0)

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

在名为[flag]

的列中,您将有一个“1”或NULL

答案 2 :(得分:0)

您可以使用不同的关键字

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