我正在使用MS ACCESS 2007和C#,我正在尝试执行以下查询..
我的表格包含三列Word
,POS
和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 Query面板中的第二个sql命令,MS Access停止响应,但返回的结果非常缓慢。
请帮帮我......
答案 0 :(得分: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
答案 1 :(得分:0)
创建嵌套查询,如QryWordsThatAppearMoreThanOnce 通过Word计数来自TName Group的Word(*)> 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
无论如何,某种奇怪的可能性会发挥作用。