MySQL插入到表中从另一个表中选择数据
问题描述:
我有一个表产品有一个制造商字段。制造商领域目前的型号为VARCHAR。MySQL插入到表中从另一个表中选择数据
我认为最好创建一个表制造商和改变产品表包括MANUFACTURER_ID场,当然这应是一个外键引用Manufacturer.id
所以迁移我想插入的新数据Product.manufacturer_id字段id制造商其名称对应于当前的Product.manufacturer字段。
我在使用下面的查询迁移数据的问题:
INSERT INTO Product (manufacturer_id)
SELECT m.id FROM Manufacturer AS m WHERE m.name =
SELECT p.manufacturer FROM Product AS p WHERE p.manufacturer = m.name;
任何人都可以点我到我要去错在何处?
答
你想update
,不insert
:
update p
set manufacturer_id = m.id
from product p join
manufacturer m
on p.manufacturer = m.name;
以上是SQL Server语法(不知道为什么我这样做,问题是明确标记的MySQL)。正确的MySQL语法是:
update product p join
manufacturer m
on p.manufacturer = m.name
set p.manufacturer_id = m.id;
+0
感谢您的回复并让我走上正轨。我无法得到上述查询工作,但以下排序的东西:**更新产品p内部联接制造商m上p.manufacturer = m.name SET p.manufacturer_id = m.id; ** – user1061799
下面的答案看起来像是你在做什么。但是,如果你还在挣扎,请看:[为什么我应该为我认为是非常简单的SQL查询提供一个MCVE?](https://meta.stackoverflow.com/questions/333952/why-should- i-provide-an-mcve-for-what-seems-to-a-very-simple-sql-query) – Strawberry