从 Access 中的查询中减去列表

Subtracting Lists from Queries in Access

我在名为 Suche 的主查询中有五个字段。让我们将字段名称考虑为一个简单的演示,如 A、B、C、D、E。 Suche 查询看起来像这样

A         B           C           D            E
1         a           b                        d
2         m           n           o            
3         t           z   
4         r           m           d            b
5         q           f           j          

我从速车查询中提取了两个查询。第一个查询称为 DUN,它从 Suche Query

中提取以下内容
A         B           C           D            E
1         a           b                        d

第二个查询称为 HOL,它从 Suche 查询中提取以下内容。

A         B           C           D            E
3         t           z   
4         r           m           d            b

现在我正在寻找构建第三个查询,我想在其中找到来自 Suche 查询的剩余未提取记录。我试过像这样实现它

SELECT (Suche.A-DUN.A-HOL.A) AS FINAL FROM Suche,DUN,HOL;

但是好像不行。有人可以指导我如何实现这一目标吗?

一种方法使用 not innot exists。假设列 A 是唯一的,你可以这样做:

select s.*
from (<Suche>) as s
where s.A not in (select d.a from (<DUN>) as d) and
      s.A not in (select h2.a from (<HOL>) as h2);

如果我明白了,您可以像这样使用 MINUS 运算符:

创建 TABLE 鳍作为 (SELECT * 来自苏切 减 SELECT * 来自 dun 减 SELECT * 来自 hol);

如果不需要创建table,忽略CREATE TABLE直接使用子查询。