访问子查询的慢处理

时间:2014-07-15 13:24:58

标签: ms-access-2007

我创建了以下子查询,但处理时间非常慢。有人可以建议如何加快它吗?

qsel_TSMatch的处理时间相对较快,因此我将其排除在原因之外。

SELECT *
FROM qsel_TSMatch
WHERE qsel_TSMatch.TSRef Not In (SELECT qsel_TSMatch.TSRef
           FROM qsel_TSMatch
          WHERE ((qsel_TSMatch.DQTest)="Yes"));

2 个答案:

答案 0 :(得分:0)

这样运行得更快:

SELECT *
FROM qsel_TSMatch LEFT JOIN (SELECT DISTINCT
  qsel_TSMatch.TSRef
FROM
  qsel_TSMatch
WHERE
  qsel_TSMatch.DQTest = "Yes"
  )   AS ztDQTest ON qsel_TSMatch.TSRef = ztDQTest.TSRef
WHERE (((ztDQTest.TSRef) Is Null));

答案 1 :(得分:0)

子查询中有相同的表,因此这应该提供相同的结果:

SELECT *
FROM qsel_TSMatch
WHERE 
    qsel_TSMatch.TSRef is null or  
    qsel_TSMatch.DQTest is null or 
    qsel_TSMatch.DQTest <> "Yes";