我有两个SQLite(也可能是MySQL可能很好)数据库具有相同的表结构但不同的数据,我必须从一个获取所有行并逐个检查,如果它们是完全(相同的数据)包含在第二个。
我需要这样做才能得到最终的是/否/部分报告(在第二步中,在第二个数据库中插入“否”并更新“部分”)。
任何人都知道是否有“聪明”的方法来做到这一点?
答案 0 :(得分: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
并更快地返回,因为它会在第一次不匹配后停止检查。