1

というテーブルの行から値をコピーするctcodeというテーブルで呼び出された行を更新しようとしています。ただし、私の SQL ステートメントは、「'where 句' に不明な列 'families.parent'」というエラーを返します。partnumberctcodefamilies

これが私の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 に答える