比较两个表的访问查询

Access Queries comparing two tables

我在 Access 中有两个 table,Table A 和 Table B:

Table MasterLockInsNew:

+----+-------+----------+
| ID | Value |   Date   |
+----+-------+----------+
|  1 |   123 | 12/02/13 |
|  2 |  1231 | 11/02/13 |
|  4 |  1265 | 16/02/13 |
+----+-------+----------+

Table InitialPolData:

+----+-------+----------+---+
| ID | Value |   Date   |Type
+----+-------+----------+---+
|  1 |   123 | 12/02/13 | x |
|  2 |  1231 | 11/02/13 | x |      
|  3 |  1238 | 10/02/13 | y |      
|  4 |  1265 | 16/02/13 | a |      
|  7 |  7649 | 18/02/13 | z |      
+----+-------+----------+---+

我想要的是来自 table B 的 ,用于 A 中不包含的 ID。我当前的代码如下所示:

SELECT Distinct InitialPolData.*
FROM InitialPolData
WHERE InitialPolData.ID NOT IN (SELECT Distinct InitialPolData.ID
                                from InitialPolData INNER JOIN
                                     MasterLockInsNew
                                     ON InitialPolData.ID=MasterLockInsNew.ID);

但是每当我在 Access 中 运行 它崩溃!! table 相当大,但我认为这不是原因。

有人能帮忙吗?

谢谢

简单的子查询即可。

select * from InitialPolData 
where id not in (
    select id from MasterLockInsNew
);

尝试使用 NOT EXISTS:

SELECT Distinct i.* 
FROM InitialPolData AS i
WHERE NOT EXISTS (SELECT 1
                  FROM MasterLockInsNew AS m 
                  WHERE m.ID = i.ID)

或尝试 left outer join:

SELECT b.*
FROM InitialPolData b left outer join
MasterLockInsNew a on
b.id = a.id
where
a.id is null