我不想要临时连接,我想实际更新一个列,使其等同于基于共享ID的另一个表的对应列。它会是这样的:
UPDATE parts2.PartNumber
SET parts2.PartNumber=parts.PartNumber
WHERE parts2.id=parts.id;
提前致谢,对不起,如果这是一个重复的问题,但我似乎无法找到答案。上面的代码给出了unknown column parts2.id in WHERE clause
的语法错误,即使该列当然存在。
答案 0 :(得分:1)
您可以通过加入部分和部分2 表来实现此目的。
UPDATE parts2 AS p2
INNER JOIN parts AS p1
ON p1.id= p2.id
SET p2.PartNumber=p1.PartNumber
答案 1 :(得分:1)
使用UPDATE JOIN语法
UPDATE parts2
JOIN parts ON parts2.id=parts.id
SET parts2.PartNumber=parts.PartNumber
答案 2 :(得分:1)
我相信以下内容会给您带来理想的效果。但它基于联接:
UPDATE parts2,
parts
SET parts2.PartNumber=parts.PartNumber
WHERE parts2.id=parts.id;
它将完全符合您的要求。这是一种最有效的方式。我没有看到任何意图避免JOIN
在这里
答案 3 :(得分:1)
您也可以试试这个。
UPDATE parts2
SET parts2.PartNumber=parts.PartNumber from parts
WHERE parts2.id=parts.id;
您只需在 SET 属性中指定表部分即可。 希望这有帮助
答案 4 :(得分:0)
UPDATE parts, parts2
SET p2.PartNumber=p1.PartNumber
FROM parts p1, parts2 p2
WHERE p1.id = p2.id