我有三個MySQL表MySQL的 - 比較兩個表的值,並記錄他們
- 我
import
表從一個cronjob獲得產品價值 - 我
products
表存儲所有產品 - 我
log
表應該存儲所有更改(添加,刪除,更改)
我想將我的import
表與我的product
表(他們都有相同的計劃),然後得到是否有產品添加,刪除或更改。另外我需要知道其中產品已更改/添加/刪除(例如,通過產品編號 - 不是PK),並將其記錄到我的log
表中。
我有三個MySQL表MySQL的 - 比較兩個表的值,並記錄他們
import
表從一個cronjob獲得產品價值products
表存儲所有產品log
表應該存儲所有更改(添加,刪除,更改)我想將我的import
表與我的product
表(他們都有相同的計劃),然後得到是否有產品添加,刪除或更改。另外我需要知道其中產品已更改/添加/刪除(例如,通過產品編號 - 不是PK),並將其記錄到我的log
表中。
您可以選擇如下的是在一個表中,而不是在其他產品行:
SELECT * FROM import WHERE product_number NOT IN (SELECT product_number FROM products);
假設這些是必須添加的產品,log
第一次寫:
INSERT INTO log (product_number, description) SELECT product_number, 'Added' FROM import WHERE product_number NOT IN (SELECT product_number FROM products);
然後更新products
:
INSERT INTO products SELECT * FROM import WHERE product_number NOT IN (SELECT product_number FROM products);
對於必須刪除具有相同product_number
但在其他領域不同的產品,在products
選擇行不在import
,爲此,必須改變產品,請選擇行中import
和products
。
導出CSV文件中表格的內容,使用(最好是GUI)diff工具來查找差異。 – axiac