2011-10-25 148 views
0

我有兩個SQLite(也是MySQL可能很好)數據庫具有相同的表結構,但數據不同,我必須從一個獲取所有行,並逐個檢查它們是否完全相同(數據相同)載於第二個。匹配數據庫數據

我需要這樣做是因爲有最終的是/否/部分報告(並在第二步中,在第二個數據庫中插入「否」並更新「部分」)。

任何人都知道是否有一個「聰明」的方法來做到這一點?

回答

0
SELECT COUNT(*) num_mismatch 
FROM table1 JOIN table2 ON (..whatever the unique ID you use for matching is...) 
WHERE table1.col1 != table2.col1 OR table1.col2 != table2.col2 OR ......etc. 

如果num_mismatch不爲0,則表示不匹配。您也可以更改COUNT(*)以輸出不匹配的ID。也可以使用NOT EXISTS,如果出現不匹配,則會返回更快,因爲它會在第一次不匹配後停止檢查。