我有2個具有相同結構的表。 現在,其中一個是現場表的舊轉儲。2個數據庫的區別,保存不同的行
我需要提取活動表中與舊轉儲相比不同或新增的每一行。
我知道如何做到這一點與選擇每一行,然後與PHP不同,但這不會是一個有效的解決方案。
有沒有人有一個想法,我可以如何以更簡單的方式做到這一點?
我有2個具有相同結構的表。 現在,其中一個是現場表的舊轉儲。2個數據庫的區別,保存不同的行
我需要提取活動表中與舊轉儲相比不同或新增的每一行。
我知道如何做到這一點與選擇每一行,然後與PHP不同,但這不會是一個有效的解決方案。
有沒有人有一個想法,我可以如何以更簡單的方式做到這一點?
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
...
如果'oldtable.id'聲明爲'not null' – Amir 2013-04-23 06:43:08
在LEFT JOIN中,不匹配行中的所有內容都爲NULL。 – Barmar 2013-04-23 06:44:01
現在我覺得很蠢--.-。謝謝您的幫助! – abcNocturn 2013-04-23 07:00:49
不能從舊錶中導入新表中沒有相應主鍵的行嗎? – Cyclonecode 2013-04-23 06:14:44