【发布时间】:2014-11-19 05:05:58
【问题描述】:
我正在尝试使用以下查询(查询是从访问查询向导构建的)在两个表中查找不匹配的记录(两个表中都包含超过 100 条记录)
表 A
EC ID wt
1001 339.55
1007 3.77
1008 1.76
1009 13.48
1010 5.86
1011 11.58
1012 37.89
1013 4.88
1015 6.98
表 B
EC ID wt_xxxx
1001 339.55
1002 1.99
1003 1.78
1004 2
1007 3.77
1008 1.76
1009 13.48
1010 5.86
1011 11.58
1012 37.89
Query1 返回表 A 中所有不在表 B 中的记录。
SELECT A.[EC ID], A.wt
FROM A LEFT JOIN B ON A.[EC ID] = B.[EC ID]
WHERE (((B.[EC ID]) Is Null));
返回
EC ID wt
1013 4.88
1015 6.98
同样,Query2 会返回表 B 中所有不在表 A 中的记录。
SELECT B.[EC ID], B.wt_xxxx
FROM B LEFT JOIN A ON B.[EC ID] =A.[EC ID]
WHERE (((A.[EC ID]) Is Null));
返回
EC ID wt_xxxx
1002 1.99
1003 1.78
1004 2
当运行第二个查询时,访问会自行关闭。但有时它会给出结果。无法理解为什么。有没有有效的方法来做到这一点。我在stackoverflow中使用了一个查询 Finding unmatched records with SQL 性能很差,需要 15 分钟才能得到结果。对于不匹配的记录查询,还有其他解决方案吗?
【问题讨论】:
-
100 多条记录,你的意思是几百条吗?来自链接帖子的查询需要 15 分钟?你能把访问文件贴在某个地方吗,我很好奇:)
标签: sql ms-access-2010