Sql 从Access中的查询中减去列表
我在名为Suche的主查询中有五个字段。让我们考虑字段的名称,作为A、B、C、D、E的简单演示。Sql 从Access中的查询中减去列表,sql,ms-access,ms-access-2010,Sql,Ms Access,Ms Access 2010,我在名为Suche的主查询中有五个字段。让我们考虑字段的名称,作为A、B、C、D、E的简单演示。 A B C D E 1 a b d 2 m n o 3 t z 4 r m
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
SELECT (Suche.A-DUN.A-HOL.A) AS FINAL FROM Suche,DUN,HOL;
我从Suche查询中提取了两个查询。第一个查询称为DUN,它从Suche查询中提取以下内容
A B C D E
1 a b d
第二个查询称为HOL,它从这样的查询中提取以下内容
A B C D E
3 t z
4 r m d b
现在,我希望构建第三个查询,在这里我希望从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
SELECT (Suche.A-DUN.A-HOL.A) AS FINAL FROM Suche,DUN,HOL;
但它似乎不起作用。有人能指导我如何做到这一点吗?有一种方法不在或不存在。假设列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);
一种方法不在或不存在。假设列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);
如果我理解的话,你可以像这样使用减号运算符: 将表fin创建为 从suche中选择* 减 从dun中选择* 减 从hol中选择*
如果不需要创建表,则忽略创建表并直接使用子查询。如果我理解,您可以像这样使用减号运算符: 将表fin创建为 从suche中选择* 减 从dun中选择* 减 从hol中选择*
如果不需要创建表,则忽略创建表并直接使用子查询。SQL是一个通用选项卡,要求的特定版本是MS Access。MS Access不支持减号运算符。请看这里:和这里:。另一种方法是按照Gordon Linoff的建议使用NOT IN或NOT EXISTS。SQL是一个通用选项卡,要求的特定版本是MS Access。MS Access不支持减号运算符。请看这里:和这里:。另一种选择是按照Gordon Linoff的建议使用NOT IN或NOT EXISTS。我的错!知道了!谢谢,真糟糕!知道了!谢谢