1

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

这是我的 SQL 语句

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

我的陈述有什么问题?有没有更有效的方法来做到这一点?

4

3 回答 3

4

UPDATE即使在语句中,您基本上也可以连接两个表,

UPDATE `partnumber` a INNER JOIN `families` b
          ON a.`partnumber` = b.`parent`
SET    a.`ctcode`= b.`ctcode` 
于 2012-09-11T03:19:22.613 回答
2

适用于 MySQL 5.5.24-0ubuntu0.12.04.1

UPDATE `partnumber`, `families`
SET `partnumber`.`ctcode`=`families`.`ctcode` 
WHERE `partnumber`.`partnumber`=`families`.`parent`;
于 2012-09-11T03:24:15.347 回答
1

试试这个查询

UPDATE partnumber 
SET ctcode = f.ctcode   
FROM partnumber p 
INNER JOIN families f ON p.partnumber = f.parent
于 2012-09-11T03:28:51.857 回答