从另一个表实体更新MySQL表列

时间:2012-08-09 14:49:20

标签: mysql

我有2个表,我需要使用table1中的列更新table2中的列。 table2.id2为空,我必须使用table1.id填充它。此外,您必须知道我在这些表中有2列可以相互匹配(table1.codetable2.code)。这是我的SQL:

UPDATE table2 SET table2.id2 = table1.id WHERE table2.code = table1.code;

这个查询对吗?我收到此错误,而我确定table1.code存在。

  

[Err] 1054 - 'where子句'

中的未知列'table1.code'

2 个答案:

答案 0 :(得分:1)

假设您可以使用代码

加入两个表
UPDATE T2
  JOIN T1 ON T1.CODE = T2.CODE
SET
  T2.ID2 = T1.ID
WHERE
  T2.ID2 = '';

答案 1 :(得分:0)

不能那样工作。

拿这个:

UPDATE table2 SET id2 = (SELECT id from table1 WHERE code = 'somecode') WHERE code = 'somecode';