1

我正在使用带有 C# 的 MS ACCESS 2007,我正在尝试执行以下查询..

我的表有三列WordPOS和 ,Freq并且有唯一的记录。总记录数为“数百万条记录”。

此查询对我来说很好,并返回我想要的所有正确结果:

Select Word, POS, Freq from TName Where Word **IN** ( SELECT Word  from TName                        Group By Word Having Count(*) > 1 ) Order By Word;

但是当我尝试以下类似的查询(在 EXE 中)时,系统会停止响应。

Select Word, POS, Freq from TName Where Word **NOT IN** ( SELECT Word  from TName                        Group By Word Having Count(*) > 1 ) Order By Word;

我还尝试了MS Access 查询面板中的第二个 sql 命令,MS Access 停止响应,但返回结果非常缓慢。

请帮帮我...

4

2 回答 2

0

由于您在 Access 中,因此您可以只使用 SELECT IN 自己的查询,然后只需使用普通的 JOIN。

查询WordCounts

SELECT Word from TName Group By Word Having Count(*) > 1

您的最终查询:

SELECT Word, POS, Freq from TName
INNER JOIN WordCounts ON TName.Word = WordCounts.Word
于 2013-04-11T21:34:28.333 回答
0

创建嵌套查询,如 QryWordsThatAppearMoreThanOnce SELECT Word from TName Group By Word Have Count(*) > 1

然后加入

Select n.Word, n.POS, n.Freq from TName n
inner join QryWordsThatAppearMoreThanOnce q On q.Word = n.Word
Order By n.Word

另一个是

Select n.Word, n.POS, n.Freq from TName n
Left join QryWordsThatAppearMoreThanOnce q On q.Word = n.Word
and q.Word is null
Order By n.Word

无论如何,类似的事情,一些访问怪异的可能性开始发挥作用。

于 2013-04-11T21:38:51.837 回答