2012-09-11 30 views
1

我试图在名为partnumber的表中更新名为ctcode的行,该表中的行ctcode中的值在名为families的表中复制。然而,我的SQL语句返回并在'where子句'中出现“未知列'families.parent'”错误。使用另一个表中的值的更新表

这里是我的SQL语句

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

什么是错我的发言?有没有更有效的方法来做到这一点?

回答

4

基本上可以加入两个表,即使在UPDATE陈述,

UPDATE `partnumber` a INNER JOIN `families` b 
      ON a.`partnumber` = b.`parent` 
SET a.`ctcode`= b.`ctcode` 
+0

谢谢你的回答,但是你的SQL语句产生了这个错误'“#1064 - 你的SQL语法有错误;检查m一个对应于你的MySQL服务器版本的正确语法使用附近''.'partnumber' = b.'parent SET' a.'ctcode' = b.'ctcode''line 1'' – JudeJitsu

+0

@JudeJitsu oops sorry这是一个类型错误。再试一次 –

+0

谢谢!像魅力一样工作! – JudeJitsu

2

作品在MySQL 5.5.24-0ubuntu0.12.04.1

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

尝试此查询

UPDATE partnumber 
SET ctcode = f.ctcode 
FROM partnumber p 
INNER JOIN families f ON p.partnumber = f.parent 
相关问题