SQL查询改进 - MSAccess 2007

时间:2016-12-20 18:23:28

标签: sql ms-access-2007

我需要根据以下SQL选择所有记录:

Select ID, ID2 From Table1 Where ID2 NOT IN (Select ID2 From Table2 Where ID3 IN (151,157))

表1中有171k记录,表2中有70k记录,其中'ID3 IN(151,157)'。

不幸的是,该查询需要永远;事实上,我从未在具有32GB内存和四核I7处理器的系统上看到它完成。我放弃并在30分钟后取消。

我认为这里有一两位SQL大师可以告诉我如何改进这个查询并让它在一分钟内完成。

1 个答案:

答案 0 :(得分:1)

您可以尝试加入子查询:

Select ID, ID2
From Table1
LEFT JOIN 
(Select ID2
 From Table2
 Where ID3 IN (151,157))
WHERE ID2 IS NULL

如果这不起作用,我会考虑将子查询创建为临时表并引用它。