Sql 两个表的并集,无重复项

Sql 两个表的并集,无重复项,sql,join,union,Sql,Join,Union,我很难找到一个明确的答案。 我有两个列完全相同的表,比如t1和t2。 我想将t2中的所有行添加到t1中,但在最后的t1中消除重复的行 我可以使用SELECT INTO,但这会留下我所理解的副本。目前,我在一个新表t3中使用了简单的并集(消除了重复项),但这使得一切都有点混乱,因为我最终需要保留t1中的所有行(所以我做了“删除表t1并将t3重命名为t1”)。但我在想,必须有更好的方法来实现这一点,也许可以使用其中一个联接?只要在第一个表中不存在值的地方执行插入即可: Insert Into T1

我很难找到一个明确的答案。 我有两个列完全相同的表,比如t1和t2。 我想将t2中的所有行添加到t1中,但在最后的t1中消除重复的行


我可以使用SELECT INTO,但这会留下我所理解的副本。目前,我在一个新表t3中使用了简单的并集(消除了重复项),但这使得一切都有点混乱,因为我最终需要保留t1中的所有行(所以我做了“删除表t1并将t3重命名为t1”)。但我在想,必须有更好的方法来实现这一点,也许可以使用其中一个联接?

只要在第一个表中不存在值的地方执行
插入即可:

Insert Into T1 (Col1, Col2, ...)
Select  T2.Col1, T2.Col2, ...
From    T2  
Where Not Exists
(
    Select  *
    From    T1
    Where   (T1.Col1 = T2.Col1 Or (T1.Col1 Is Null And T2.Col1 Is Null))
    And     (T1.Col2 = T2.Col2 Or (T1.Col2 Is Null And T2.Col2 Is Null))
    And     ...
)

我不需要对其进行排序,但我需要将结果保存在一个表中,而不仅仅是返回union querySample数据的结果,所需的结果将澄清问题。你说的复制是什么意思?在没有其他信息的情况下,可以假设所有的列。因此,
UNION
将是一种正确的方法。是的,UNION会起作用,但我如何使用t1和t2的UNION并将结果保存在t1中(而不仅仅是返回UNION)?@lad2025关于
NULL
s的公平点,但我不太确定第二点。根据问题:
我想将t2中的所有行添加到t1中,但在最后的t1中消除重复的行。
听起来他想做的就是将
t2
中的新记录插入到
t1
,而不复制行。数据中的
NULL
条件更新。
INSERT INTO T1 (column1, column2, column3,...columnN) 
(SELECT column1, column2, column3,...columnN FROM T2
EXCEPT
SELECT column1, column2, column3,...columnN FROM T1)