2013-04-23 82 views
0

我有2個具有相同結構的表。 現在,其中一個是現場表的舊轉儲。2個數據庫的區別,保存不同的行

我需要提取活動表中與舊轉儲相比不同或新增的每一行。

我知道如何做到這一點與選擇每一行,然後與PHP不同,但這不會是一個有效的解決方案。

有沒有人有一個想法,我可以如何以更簡單的方式做到這一點?

+0

不能從舊錶中導入新表中沒有相應主鍵的行嗎? – Cyclonecode 2013-04-23 06:14:44

回答

1
SELECT newtable.* 
FROM newtable LEFT JOIN oldtable USING (id) 
WHERE oldtable.id IS NULL /* new rows */ 
OR newtable.col1 != oldtable.col1 
OR newtable.col2 != oldtable.col2 
OR newtable.col3 != oldtable.col3 
... 
+0

如果'oldtable.id'聲明爲'not null' – Amir 2013-04-23 06:43:08

+0

在LEFT JOIN中,不匹配行中的所有內容都爲NULL。 – Barmar 2013-04-23 06:44:01

+0

現在我覺得很蠢--.-。謝謝您的幫助! – abcNocturn 2013-04-23 07:00:49

相關問題