我有2个表:#tmptable1
和#tmptable2
。这些表具有唯一标识每条记录的ID。
我想返回表1中的所有记录,但我只想返回表2中不在表1中的记录
我希望在1次查询中完成此操作。
谢谢!
答案 0 :(得分:3)
SELECT * FROM '#tmptable1'
UNION ALL
SELECT * FROM '#tmptable2' WHERE
ID NOT IN (SELECT ID FROM #tmptable1 WHERE ID IS NOT NULL)
答案 1 :(得分:3)
如果两个表的所有其他字段和数据相同,则可以执行此操作:
SELECT * FROM #tmptable1
UNION
SELECT * FROM #tmptable2
没有的UNION ALL修饰符会删除重复项。
答案 2 :(得分:1)
我不太明白你想要在结果中得到什么,但UNION
选择不同的值,所以你不会有重复的值(来自#tmptable2的值已经存在于#tmptable1中)。
SELECT * FROM #tmptable1
UNION
SELECT * FROM #tmptable2
无论如何,这些记录是#tmptable2中不在#tmptable1中的记录。
SELECT * FROM #tmptable2
EXCEPT
SELECT * FROM #tmptable1
答案 3 :(得分:0)
SELECT ID FROM #tmptable1
UNION
SELECT ID FROM #tmptable2
UNION
运算符会自动删除重复项。