的MySQL插入来自其他表的ID值到匹配的行
问题描述:
我想我的正常化表:的MySQL插入来自其他表的ID值到匹配的行
products
id | name | manufacturer | manufacturer_id
manufacturers
id | name
我需要查询以更新products.manufacturer_id其中products.manufacturer = manufacturers.name(我会再删除产品.manufacturer)
非常感谢您的时间
汤姆
答
你可以试试这样:
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)
你还没说的是'products.manufacturer'没有设置,'products.manufacturer_id'是。正确? – 2014-08-30 20:01:10
恰恰相反 - 我正在从名称切换到ID。 – Tomasz 2014-08-30 20:58:03