使用 Access 检查重复项 SQL

Checking for duplicates using Access SQL

我目前正在处理一个访问表单,它处理两个表之间的重复检查。

我找return的场景如下:

-TempTableExcelFile 中的重复项 -tblPeople 中的重复项 - 跨两个表重复。

我通过研究了解到我需要使用连接,但我似乎无法让它工作。

我目前的代码查询如下:

SELECT * FROM (
    SELECT count(code) AS [Number of Duplicates]
           code AS [Code Duplicated],
           "Existing Database" AS [Duplicate Location] 
    from tblpeople 
    group by code
    having count(code) > 1 
    UNION ALL
    select count(code) AS [Number of Duplicates],
           code AS [Code Duplicated], 
           "Imported Data"  AS [Duplicate Location] 
    from TempTableExcelFile 
    group by code
    having count(code) > 1
)

所以根据我的理解,这目前会给我包含在各自表格中的重复项。

我对如何加入表格的理解如下:

SELECT count(code) AS [Number of Duplicates],
       code AS [Code Duplicated],
       "Existing Database" AS [Duplicate Location]
FROM tblPeople        
    JOIN TempTableExcelFile 
    ON code = code
GROUP BY code
having count(code) > 1 

但是,尽管付出了很多努力,但在我们在 tblPeople 中复制代码 TempTableExcelFile 的情况下,我无法触发它。我很痛苦地意识到这可能是因为我缺乏理解,所以在这件事上的任何帮助将不胜感激。

如果您post解决了问题,请尽您所能解释我哪里出错了,并建议我可以研究的主题以加深我的理解。

谢谢,

P.S,我很欣赏这里的命名约定有点不对,我使用的是我的前任创建的现有表。

用一个UNION ALL把2个table变成1个"table",然后从中数

SELECT count(*), code FROM (
    SELECT code
    from tblpeople  
    UNION ALL
    select code
    from TempTableExcelFile
) TableAndTemp
    group by code
    having count(code) > 1

或者,select tblpeople

中已存在的临时 table 中的所有代码
SELECT DISTINCT code
from TempTableExcelFile
WHERE code in (SELECT Code from tblpeople)