谢谢你看这个。比我聪明的人会有这个答案,但我已经达到了我的极限。
我有三个单独的表格,并试图将它们相互比较以测试一些报告。这些表中的每一个都是从单独的搜索查询填充的临时表。它们都有一个可以链接它们的 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 的大量结果,因为比较两者都做。我可以在组或 where 子句中撤消此操作,但我不知道如何操作。有任何想法吗?