从 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 in
或 not 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直接使用子查询。
我在名为 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 in
或 not 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直接使用子查询。