sql中的不同谓词崩溃Access

时间:2011-05-18 22:37:38

标签: ms-access

我在Access中编写一个查询,它非常简单:

SELECT fieldName FROM table;

这完全可以,但是如果我尝试以下查询Access将不会响应并崩溃:

SELECT DISTINCT fieldName FROM table;

注意:这不是数据库中我第一次使用distinct子句。

可能需要注意:它正在查询的表是另一个查询和表单 -

SELECT * from otherTable where otherField IN 
                                         (SELECT otherField2 from otherTable2); 

有没有人知道可能导致这种情况的线索?

3 个答案:

答案 0 :(得分:1)

可能是您的数据库已损坏。尝试一个紧凑的&维修。

答案 1 :(得分:1)

IN关键字会减慢访问速度,尤其是查询您正在尝试执行的查询。您可以尝试加入,例如:

SELECT * FROM otherTable LEFT JOIN otherTable2 ON otherTable.otherField = otherTable2.otherField2

答案 2 :(得分:0)

如果otherTable2仅包含otherTable中每条父记录的0或1条记录,则JOIN将仅返回与原始查询相同的记录集。您可以使用

在所有方案中获得相同的结果
SELECT DISTINCT otherTable.*
FROM otherTable INNER JOIN otherTable2
  ON otherTable.otherField = otherTable2.otherField2

这将返回一个可编辑的记录集。我怀疑性能与IN查询有什么不同。如果IN查询在紧凑和&之后仍然崩溃Access,那么可以尝试维修。