感谢您关注此问题。比我聪明的人会有这个答案,但我已经达到了我的极限。比较SQL表
我有三个单独的表,我试图比较它们对测试一些报告的目的。这些表中的每个表都是从单独的搜索查询填充的临时表。他们都有一个可以链接它们的baseID。 例如
#1
ID value
1 5
2 6
#2
ID value
1 5
2 7
#3
ID value
1 5
2 7
我有以下查询
SELECT * FROM (SELECT * FROM #1 EXCEPT SELECT * FROM #2) AS T
UNION ALL SELECT * FROM (SELECT * FROM #2 EXCEPT SELECT * FROM #1) AS T
UNION ALL SELECT * FROM (SELECT * FROM #1 EXCEPT SELECT * FROM #3) AS T
UNION ALL SELECT * FROM (SELECT * FROM #3 EXCEPT SELECT * FROM #1) AS T
UNION ALL SELECT * FROM (SELECT * FROM #2 EXCEPT SELECT * FROM #3) AS T
UNION ALL SELECT * FROM (SELECT * FROM #3 EXCEPT SELECT * FROM #2) AS T
这一工程真的很好,比较三个表三者之间返回任何不同的值。只有一个缺失或不同的数据等,但是如果baseID出现多次,报告失败。
#1
ID value
1 5
1 6
2 6
#2
ID value
1 5
1 6
2 7
#3
ID value
1 5
1 6
2 7
在这个集合中,我得到了#1的大量结果,因为比较是同时进行的。我可以在一个小组或哪个条款中解决这个问题,但我不知道如何。有任何想法吗?