我一直在阅读 SO 和其他网站,并遵循了一些示例;但是,我的 SQL 语句仍然没有按要求执行。
我有两张 table
parts
============================
pmkParts fnkManufacturer
----------------------------
0 Penn-Union
1 Schneider
2 Telemecanique
和
manufacturer
===============================
Manufacturer pmkManufacturer
-------------------------------
Penn-Union 45
Schneider 56
Telemecanique 12
我想把零件表改成
parts
============================
pmkParts fnkManufacturer
----------------------------
0 45
1 56
2 12
这是我试过的 SQL 语句。
Update parts
SET parts.fnkManufacturer = (
SELECT manufacturer.pmkManufacturer
FROM manufacturer
WHERE manufacturer.pmkManufacturer = parts.fnkManufacturer
)
那是在更改正确的列,但它用“NULLS”而不是外键(制造商)填充它。我认为应该在某处加入一个连接,但我不确定在哪里。
有什么建议吗?
------------
编辑:答案:
这是有效的 SQL 语句。感谢 MarcB 的帮助。
Update parts
SET parts.fnkManufacturer = (
SELECT manufacturer.pmkManufacturer
FROM manufacturer
WHERE manufacturer.Manufacturer= parts.fnkManufacturer
)
最佳答案
尝试使用更新连接查询更改您的查询,如下所示。同样,您加入了错误的列,实际上您应该加入 manufacturer.Manufacturer
列。
Update parts p
JOIN manufacturer m ON m.Manufacturer = p.fnkManufacturer
SET p.fnkManufacturer = m.pmkManufacturer;
关于MySQL - 根据连接表列值更新列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38273515/