2014-08-30 60 views
1

我想我的正常化表:的MySQL插入來自其他表的ID值到匹配的行

products 
id | name | manufacturer | manufacturer_id 

manufacturers 
id | name 

我需要查詢以更新products.manufacturer_id其中products.manufacturer = manufacturers.name(我會再刪除產品.manufacturer)

非常感謝您的時間

湯姆

+0

你還沒說的是'products.manufacturer'沒有設置,'products.manufacturer_id'是。正確? – 2014-08-30 20:01:10

+0

恰恰相反 - 我正在從名稱切換到ID。 – Tomasz 2014-08-30 20:58:03

回答

3

你可以試試這樣:

update products INNER JOIN manufacturers 
set products.manufacturer_id = manufacturers.id 
where products.manufacturer = manufacturers.name 
+1

@Tomasz: - 哦,是的。謝謝。更新了。 – 2014-08-30 20:02:15

+1

這個工程! – Tomasz 2014-08-30 20:14:33

1
update products p 
    set p.manufacturer_id = 
     (select m.id from manufacturers m where m.name = p.manufacturer) 
相關問題