联合所有但只保留 T-SQL 中一张表中的重复项

xri*_*s23 1 sql t-sql sql-server union union-all

我有两张我想合并的表。我只需要保留两个表之一的重复项。我试图找到它,但在任何地方都找不到。希望有人能帮忙。

例如:表_1:

ID 产品 数量
1 一种 10
2 10
3 C 10

表_2:

ID 产品 数量
3 C 9
4 一种 100
5 100

想要的结果:

ID 产品 数量
1 一种 10
2 10
3 C 9
4 一种 100
5 100

所以总是使用 table_2 中的重复项。在此示例中,ID 3 是重复的,因此使用数量为 9 的 table_2 的副本。

如何用 T-SQL 实现这一点?我使用了下面的代码:

Select * from Table_1 where Table_1.id != Table_2.id
Union All
Select * from Table_2 
Run Code Online (Sandbox Code Playgroud)

但随后我收到错误消息:“无法绑定多部分标识符“Table_2.ID”。

Gor*_*off 5

使用not exists

Select t1.*
from Table_1 t1
where not exists (select 1 from table_2 t2 where t2.id = t1.id)
Union All
Select t2.*
from Table_2 t2;
Run Code Online (Sandbox Code Playgroud)