我在Access中编写一个查询,它非常简单:
SELECT fieldName FROM table;
这完全可以,但是如果我尝试以下查询Access将不会响应并崩溃:
SELECT DISTINCT fieldName FROM table;
注意:这不是数据库中我第一次使用distinct子句。
可能需要注意:它正在查询的表是另一个查询和表单 -
SELECT * from otherTable where otherField IN
(SELECT otherField2 from otherTable2);
有没有人知道可能导致这种情况的线索?
答案 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,那么可以尝试维修。