我有一個數據庫中有數據。幸運的是,它一直很靈活,所以我應該能夠運行一些漂亮的SQL並清理它。這裏的故事:mySQL:如何更新表和字段依賴於其他表中的值?
Table 'uc_products':
nid model
1 asdf
2 qwer
3 ghjk
Table 'uc_product_stock':
nid sku
1 asdf
22 qwer
34 ghjk
所以你可以看到model = sku和nid = nid。表uc_products中包含所有正確的數據,而uc_product_stock是數據不正確(nid與sku不匹配)的數據。我想通過uc_product_stock併爲每個條目看,比較uc_product:
- 凡模型== SKU & NID == NID:是啊!數據很好!
- Where model == sku & nid!= nid:boo!利空數據,所以uc_stock_product.nid應更新爲匹配uc_product.nid
值[我想一個更強力的方式做這將是匹配SKU /模型每一行和重置每個uc_product_stock。 nid匹配uc_product.nid - 主要是錯誤的將被糾正,正確的將被重置爲相同的值並保持正確。如果你認爲這是最好的答案,我很樂於接受,但這讓我感覺有點有趣。我不喜歡亂用已經正確的數據。]
感謝您的幫助!
+1正是我一直打算寫 – mdma 2010-07-28 17:00:18
謝謝! 「b」不起作用(我認爲是因爲它在被聲明之前被調用?),但我只是將它換出來用於「UPDATE uc_product_stock SET uc_product_stock.nid =(SELECT MIN(uc_products.nid)FROM uc_products WHERE uc_products.model = uc_product_stock.sku)「,一切都很好! – Eileen 2010-07-28 17:37:43