2012-09-11 52 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 
相關問題