我已经研究过并且没有找到在MS Access中运行INTERSECT和MINUS操作的方法.有任何方式存在
INTERSECT是一个内部联接.MINUS是一个外连接,您只能选择另一个表中不存在的记录.
select distinct a.* from a inner join b on a.id = b.id
减去
select distinct a.* from a left outer join b on a.id = b.id where b.id is null
如果您编辑原始问题并发布一些示例数据,则可以给出一个示例.
编辑:忘记添加到查询的不同.
INTERSECT不是内部联合.他们是不同的.如果INTERSECT不能,INNER JOIN会给你重复的行.你可以得到相同的结果:
SELECT DISTINCT a.* FROM a INNER JOIN b on a.PK = b.PK
请注意,PK必须是主键列.如果表上没有PK(坏!),你必须这样写:
SELECT DISTINCT a.* FROM a INNER JOIN b ON a.Col1 = b.Col1 AND a.Col2 = b.Col2 AND a.Col3 = b.Col3 ...
使用MINUS,您可以执行相同的操作,但使用LEFT JOIN,并且WHERE条件在表b的不可为空的列(最好是主键)之一上检查null.
SELECT DISTINCT a.* FROM a LEFT JOIN b on a.PK = b.PK WHERE b.PK IS NULL
应该这样做.