我有2個數據庫,一個用於操作,一個用於分析。比較兩個表的一致性(Mysql)與查詢
分析數據庫與操作數據庫不是1:1,但仍非常相似。
現在我將歸檔文件(csv)加載到分析數據庫(以前爲空)。
我在分析中使用了舊數據,並在操作數據庫中保存了當前數據。
我想編寫一個查詢來確定某些新加載的記錄是否已經在數據庫中。
有沒有辦法檢查出來?
編輯:
首先,我很抱歉。查看我的數據庫後犯了一個錯誤。我不需要比較兩個不同的數據庫,而通過phpmyadmin複製操作數據庫時,我忘了將當前數據加載到分析數據庫中。 所以我只需要比較一個數據庫中的兩個表,不管是否有一些舊記錄已經存在於數據庫中。
我的第一個想法是/是:
SELECT *
FROM orderlinesold t1
LEFT JOIN orderlines t2 on t1.orderid = t2.orderid;
,但運行的查詢我得到的孔排,結果這是不可能的後 - >錯誤的查詢。
如何檢查一些舊數據是否仍在新數據中?
PS:表格在評論中作爲鏈接。
- 編輯:
確定我解決它。只是一個小比較查詢:
SELECT *
FROM ordersold t1
INNER JOIN orders t2 ON t1.orderid = t2.orderid
LIMIT 100000000;
或:
SELECT *
FROM orderlinesold t1
LEFT JOIN orderlines t2 ON t1.orderid = t2.orderid
WHERE t2.orderid IS NOT NULL
LIMIT 100000000;
上廢棄正確的結果。
還是謝謝。這篇文章可以關閉。
請提供該表的格式兩張桌子。更好的是,提供SQL,給出你所嘗試過的例子。 – 2013-03-27 19:50:59
看起來像這個線程可能會幫助你http://stackoverflow.com/questions/225772/compare-two-mysql-databases?rq=1。否則,你可以爲每個表編寫查詢來分析,也許使用'IN'或'NOT IN'子句。 – Scotch 2013-03-27 19:53:19
在這裏我的表:http://imgur.com/XpgwI35 – JOP 2013-03-27 20:06:57