将内容从1个表复制到另一个表中,但匹配记录除外

Ray*_*Ray 3 sql sql-server

我有一个关于运行特定类型的查询的问题.这是一个例子:我有2个表X和Y.

Table X
1@abc.com
2@abc.com
3@abc.com
Run Code Online (Sandbox Code Playgroud)

我现在想将所有内容移到表Y中.所以现在,表Y看起来就像表X一样

我现在删除表X中的所有内容,除了1 @ abc.com所以新的表X看起来像这样:

Table X
1@abc.com
Run Code Online (Sandbox Code Playgroud)

假设我不小心做了这件事,我现在想要将表Y中的所有内容移回X,除了匹配记录(在这种情况下,将是1@abc.com)

我该怎么做?

Ode*_*ded 10

您可以使用EXCEPT关系运算符:

INSERT INTO X
SELECT * FROM Y
  EXCEPT 
SELECT * FROM X
Run Code Online (Sandbox Code Playgroud)

还有互补的INTERSECT和知名度更高的UNION运营商.