SQL Server:联接2个表,其中每行具有唯一的PKEY值

问题描述 投票:0回答:1

我正在尝试用相等数量的列联接2个表,并且每个列的名称都相同。 Tb1是我已导入到SQL Server的MS Access表。 Tb2是一个从tb1每季度更新一次的表,用于生成报告。

我进入设计视图,并确保所有列数据类型都相同并且具有相同的名称。同样,每个表中的每一行在名为PKEY的列中分配一个唯一的整数值。

我想做的是将tb1(MS Access表)中存在的所有新条目添加到现有的tb2中。我相信可以通过编写查询来加载在tb1中找到的所有唯一pkey(AKA加载在两个表中都找到的NOT的所有键,仅加载属于访问表中的行的唯一键)的查询来完成此操作然后将这些条目附加到Tb2中。

不确定写此查询时从哪里开始,我尝试过类似的操作:

SELECT * 
FROM tb1 
WHERE PKEY <> Tb2.PKEY

任何帮助将不胜感激。谢谢!

sql sql-server-2017
1个回答
2
投票

我建议not exists

select tb1.*
from tb1
where not exists (select 1 from tb2 where tb2.pkey = tb1.pkey);

您可以在其前面放置insert以将行插入第二张表。

© www.soinside.com 2019 - 2024. All rights reserved.