我有兩個相同的表,其中一個具有行的當前值,另一個具有新值。我試圖只選擇新值表中的行,其中新值表中的任何列的值與舊值表中的列的值不同。我正在使用的查詢如下所示:以不同的值在行上連接兩個相同的表
SELECT `new`.`item_id`
FROM `new_items` AS `new`
JOIN `items` AS `old`
WHERE new.item_id = old.item_id
AND (new.price != old.price ||
new.description != old.description ||
new.description_long != old.description_long ||
new.image_small != old.image_small ||
new.image_large != old.image_large ||
new.image_logo1 != old.image_logo1)
但是,此查詢需要太長的時間才能執行。 MySQL是否有更好的方法來做到這一點,或者是否有人知道更高效的查詢?
如果您的數據對於此類操作來說太大而不是使用查詢使用過程。但爲此,你必須焚燒你的油。 – Ankit 2011-05-11 04:42:29
每個表中有多少行?什麼是索引定義? – 2011-05-11 04:46:48
每表大約12,000行沒有索引,我是否應該爲每個這些字段添加一個索引? – chris 2011-05-11 04:48:21