【发布时间】:2023-03-12 09:10:02
【问题描述】:
下面有两张桌子
tblLoc(LocCode) tblData(Item,LocCode)
在 tblData 中,有一个在 tblLoc 中找不到的额外 LocCode。
SELECT D.LocCode
FROM tblData AS D
WHERE D.LocCode NOT IN (SELECT LocCode FROM tblLoc);
我使用这个查询。它很慢。有更好的查询吗?
【问题讨论】:
-
两个表中有多少条记录?您的 tblData 是否在 LocCode 上有索引?使用 EXISTS 关键字尝试下面的 onedaywhen 解决方案 - Access 通常可以通过这种方式运行得更快(尽管在内部这些查询应该优化到相同的计划,但 Access 不喜欢 IN 操作)。
-
Access/Jet/ACE 对 IN 子查询很好,但不能像普通的旧 IN 一样可靠地优化 NOT IN - 否定有时会导致它无法使用两侧的索引比较..
标签: sql ms-access ms-access-2003