追加如果该项目在另一个表中不存在?

Jas*_*don 6 ms-access

我有一个表记录源(包含大量信息),并且我有一个包含1200条记录的表。我想将当前不存在的任何记录追加到此目标表(包含1200条记录)中。我要附加的商品的标准是:

"Not In ([TABLE - To Work].[Item Number])"
Run Code Online (Sandbox Code Playgroud)

问题是,它返回了我想要的记录,返回了1200次,而不是一次。

例如:

Table A:                    Table B:

Item Number                 Item Number
12345                       45678
45678
Run Code Online (Sandbox Code Playgroud)

“ 12345”仅会追加到表B中一次(然后再也不会追加!),我寻找了一些解决方案,并尝试使用无与伦比的查询向导,但是我认为这并不是我想要的(它生成了数字为空)。我需要做些什么才能对表格的整个范围进行查看,而不是逐项查看(我假设这就是为什么它填充与现有记录相同的次数)的原因?我要离开哪一步?

Gor*_*son 5

您的查询的一般形式将类似于

INSERT INTO [Table B] ( [Item Number] )
SELECT [Table A].[Item Number]
FROM [Table A]
WHERE [Table A].[Item Number] NOT IN (SELECT [Item Number] FROM [Table B]);
Run Code Online (Sandbox Code Playgroud)

注意 [Table B] 不在主查询的 FROM 子句中,它只在 NOT IN 子查询的 FROM 子句中。