2013-03-13 57 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

相关问题