2013-03-13 61 views
0

我不完全清楚如何提出這個問題,但是我想將所有的人員都設置在一個組中,以便也可以在新組中。根據不同表中的值更改1個表中的值

我想這樣做......

mysql> UPDATE `cla-constituents`.`person_custom` SET `c3` = '6' WHERE `person_per`.`per_cls_id` =7; 

,但我得到:

cla-constituents是DB 「ERROR 1054(42S22)未知列在 'where子句' person_per.per_cls_id'」 ,person_custom是表1,c3爲靶細胞

我想改變誰在上person_perper_cls_id列有7人都該小區。相同的DB。

我希望這是有道理的。

+1

你還沒有加入你的'UPDATE'中的兩個表,所以它不知道'person_per'是什麼。你可以發佈你的表結構每個表嗎? – Taryn 2013-03-13 18:54:29

+0

將來,請不要在*強制*程序員引用它們的名稱中使用字符,例如十個減號「cla-constituentnts」。下劃線本來是一個更好的選擇。 – Bohemian 2013-03-13 19:27:45

回答

1

您可以使用LEFT或INNER JOIN

UPDATE `cla-constituents`.`person_custom` 
INNER JOIN person_per ON cla-constituents.id = person_per.id 
SET `c3` = '6' 
WHERE `person_per`.`per_cls_id` =7; 

在這裏我有一個假想列加入。你可以使用你的正確的。

+0

爲什麼左連接而不是內連接? – Barmar 2013-03-13 19:08:21

相關問題