You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于MS-Access的两组复杂数据集对比分析需求

在MS Access中对比两张数据集表的实用方案

Hey there, 我看你正在用MS Access处理两张表的对比分析,先把你给出的示例数据整理成清晰的表格,然后针对常见的对比需求给你写好可直接运行的Access SQL查询:


示例数据表

Table 1

IDName
1Zoie
2Rohan
2Simon
3Jerome
4Jakob
4Mathew
4Cora
6Keely
7Aiyana
7Jake
8Reid
9Emerson

Table 2

IDName
1Michael
2Rohan
2Simon
3Jill
4Jakob
4Cora
5Charlie
7John
8Reid
9Yadi

常见对比场景及实现方法

1. 找出两张表中ID和Name完全匹配的记录

这些是两张表中完全一致的条目,适合用来确认重合数据:

SELECT t1.ID, t1.Name
FROM Table1 AS t1
INNER JOIN Table2 AS t2 
ON t1.ID = t2.ID AND t1.Name = t2.Name;

运行后你会得到像ID=2的Rohan/Simon、ID=4的Jakob/Cora这类完全匹配的记录。

2. 找出相同ID但Name不一致的记录

用来定位同一ID下名称有差异的情况,比如ID=1、3、7、9这些:

SELECT t1.ID, t1.Name AS Table1_Name, t2.Name AS Table2_Name
FROM Table1 AS t1
INNER JOIN Table2 AS t2 
ON t1.ID = t2.ID
WHERE t1.Name <> t2.Name;

这个查询会把两边ID相同但名字不一样的记录列出来,方便你核对差异。

3. 找出仅在Table1中存在的记录(Table2没有的ID或Name)

包括Table1有但Table2完全没有的ID,以及同ID下Table1多出来的Name(比如ID=4的Mathew,ID=6的Keely):

SELECT t1.ID, t1.Name
FROM Table1 AS t1
LEFT JOIN Table2 AS t2 
ON t1.ID = t2.ID AND t1.Name = t2.Name
WHERE t2.ID IS NULL;

4. 找出仅在Table2中存在的记录

类似上面,比如ID=5的Charlie,ID=7的John这些:

SELECT t2.ID, t2.Name
FROM Table2 AS t2
LEFT JOIN Table1 AS t1 
ON t2.ID = t1.ID AND t2.Name = t1.Name
WHERE t1.ID IS NULL;

5. 汇总所有差异(合并上述3、4的结果)

如果需要一次性看两边所有独有的记录,可以用UNION ALL合并结果:

SELECT t1.ID, t1.Name, '仅在Table1' AS 来源
FROM Table1 AS t1
LEFT JOIN Table2 AS t2 
ON t1.ID = t2.ID AND t1.Name = t2.Name
WHERE t2.ID IS NULL

UNION ALL

SELECT t2.ID, t2.Name, '仅在Table2' AS 来源
FROM Table2 AS t2
LEFT JOIN Table1 AS t1 
ON t2.ID = t1.ID AND t2.Name = t1.Name
WHERE t1.ID IS NULL;

内容的提问来源于stack exchange,提问作者Mario

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:03:20