根据ID将一个表的单个列合并到另一个表中

时间:2014-02-17 06:37:47

标签: mysql sql

我不想要临时连接,我想实际更新一个列,使其等同于基于共享ID的另一个表的对应列。它会是这样的:

UPDATE parts2.PartNumber 
SET parts2.PartNumber=parts.PartNumber 
WHERE parts2.id=parts.id;

提前致谢,对不起,如果这是一个重复的问题,但我似乎无法找到答案。上面的代码给出了unknown column parts2.id in WHERE clause的语法错误,即使该列当然存在。

5 个答案:

答案 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