使用另一个表中的值更新表

时间:2012-09-11 03:17:06

标签: mysql sql

我正在尝试在名为ctcode的表中更新名为partnumber的行,从名为ctcode的表中的行families复制值。然而,我的SQL语句返回并且'where子句'中的“未知列'families.parent'”错误。

这是我的SQL语句

UPDATE `partnumber` 
SET `partnumber`.`ctcode`=`families`.`ctcode` 
WHERE `partnumber`.`partnumber`=`families`.`parent`;

我的陈述有什么问题?有没有更有效的方法呢?

3 个答案:

答案 0 :(得分:4)

即使在UPDATE语句

中,您基本上也可以加入这两个表
UPDATE `partnumber` a INNER JOIN `families` b
          ON a.`partnumber` = b.`parent`
SET    a.`ctcode`= b.`ctcode` 

答案 1 :(得分:2)

适用于MySQL 5.5.24-0ubuntu0.12.04.1

UPDATE `partnumber`, `families`
SET `partnumber`.`ctcode`=`families`.`ctcode` 
WHERE `partnumber`.`partnumber`=`families`.`parent`;

答案 2 :(得分:1)

尝试此查询

UPDATE partnumber 
SET ctcode = f.ctcode   
FROM partnumber p 
INNER JOIN families f ON p.partnumber = f.parent