从表视图行更新了MYSQL中的行

时间:2012-02-08 05:26:00

标签: mysql sql-update

我很难过。

假设我有一张桌子,'1',有三列,'A','B','C'。列'C'有一些NULL值。另一个表'2'包含列'A'(匹配表'1')和'C',其中'C'已完成。

如何将表'2'中的值合并到MYSQL中的表'1'中?

我已经尝试了,上下发誓应该可以工作:

UPDATE 1  
SET 1.C = 2.C  
FROM 1 JOIN 2  
ON 1.A = 2.A  
WHERE 1.C IS NULL;

线索?提示?想法?

2 个答案:

答案 0 :(得分:1)

这有效:

update t1, t2
set t1.c = t2.c
where t1.a = t2.a and t1.c is null;

根据更改的要求更新答案。 T2可以是一个视图,因此连接可能是一个更好的主意。我不太了解视图,所以我刚刚离开UPDATE行t2 ...但我不确定它是否会改变任何东西。

update t1
join t2 on t1.a = t2.a
set t1.c = t2.c
where t1.c is null;

答案 1 :(得分:0)

您的查询是正确的,但请尝试使用Alias

UPDATE  `tableNameA` `a`  
SET     `a`.`C` = `b`.`C`  
FROM    `a` INNER JOIN `tableNameB` `b` ON `a`.`A` = `b`.`A`  
WHERE   `a`.`C` IS NULL;

如果您的某些字段包含RESERVED WORD

,我添加了backtick