的MySQL插入来自其他表的ID值到匹配的行

问题描述:

我想我的正常化表:的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

你可以试试这样:

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

update products p 
    set p.manufacturer_id = 
     (select m.id from manufacturers m where m.name = p.manufacturer)