首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Access追加查询重复结果

问Access追加查询重复结果
EN

Stack Overflow用户
提问于 2018-12-20 21:42:17
回答 1查看 151关注 0票数 0

我有一个附加的查询

代码语言:javascript
复制
INSERT INTO SPLIT_EXPORT_X2_LOANNOTPRESENT
SELECT SPLIT_EXPORT_X2_2.*
FROM SPLIT_EXPORT_X2_2, IMPORT_CSV
WHERE (((SPLIT_EXPORT_X2_2.coll_key) Not In (Select [LoanIdentifier] from [IMPORT_CSV])));

根据贷款标识符,它应该追加SPLIT_EXPORT_X2_2表中没有出现在IMPORT_CSV中的任何内容。

X2表中有许多列,我需要它们全部附加。

作为问题的一个例子,如果IMPORT_CSV表中有20行,那么需要追加1行。它将附上那一行的20份副本。它似乎对每一行进行WHERE检查,并在不匹配时追加。通常由一个组来解决这个问题,但是access告诉我,如果我用星号追加,我就不能使用group by。我必须列出所有的列,并给特定的列一个group by。

还有什么可以替代的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-20 21:47:46

在IMPORT_CSV子句中,只在子查询中不需要FROM:

代码语言:javascript
复制
INSERT INTO SPLIT_EXPORT_X2_LOANNOTPRESENT
    SELECT SPLIT_EXPORT_X2_2.*
    FROM SPLIT_EXPORT_X2_2
    WHERE (((SPLIT_EXPORT_X2_2.coll_key) Not In (Select [LoanIdentifier] from [IMPORT_CSV])));

我还建议使用NOT EXISTS而不是NOT IN

代码语言:javascript
复制
INSERT INTO SPLIT_EXPORT_X2_LOANNOTPRESENT
    SELECT SPLIT_EXPORT_X2_2.*
    FROM SPLIT_EXPORT_X2_2
    WHERE NOT EXISTS (SELECT 1
                      FROM IMPORT_CSV
                      WHERE SPLIT_EXPORT_X2_2.coll_key = IMPORT_CSV.[LoanIdentifier]
                     );

如果子查询中的值为NULL,则NOT IN将过滤掉所有行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53876427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档