感謝您關注此問題。比我聰明的人會有這個答案,但我已經達到了我的極限。比較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的大量結果,因爲比較是同時進行的。我可以在一個小組或哪個條款中解決這個問題,但我不知道如何。有任何想法嗎?