使用 - SQL Server 2008 R2 - SQL server management studio查询窗格 我有一个excel电子表格,其中包含超过150k个唯一ID,用于我们的动态2011数据库中的联系人。我需要查询数据库中不在150k列表中的所有其他记录。做这个的最好方式是什么?我需要查询的记录对它们没有任何活动,所以我很难弄清楚如何将它们拉出来。可以在150k物品上使用NOT IN吗?我应该将150k ID添加到临时表中然后使用NOT IN temptable吗?还是有更好的方法
答案 0 :(得分:0)
您可以使用not in
,但性能可能非常差。
你最好做一个not exists
或左连接过滤掉未加入的结果。您可能希望以某种方式将要排除的记录拉入数据库,或者通过导入到表中,或者写出临时/变量表来进行工作。但无论如何......
示例表:
myRecordsToExclude
myTable
示例:
select t.*
from myTable t
where not exists (
select 1
from myRecordsToExclude e
where t.id = e.id
)
或
select t.*
from myTable t
left join myRecordsToExclude e on t.id = e.id
where e.id is null