从表视图行更新MYSQL中的行

从表视图行更新MYSQL中的行,mysql,sql-update,Mysql,Sql Update,我被难住了 假设我有一个表'1',有三列'a','B','C'。列“C”有一些空值。另一个表“2”有列“A”(与表“1”匹配)和“C”,其中“C”是完整的 如何在MYSQL中将表“2”中的值合并到表“1”中 我已经试过了,并且上下发誓它应该会起作用: UPDATE 1 SET 1.C = 2.C FROM 1 JOIN 2 ON 1.A = 2.A WHERE 1.C IS NULL; 还有线索?提示?想法 您的查询是正确的,但请尝试使用别名: UPDATE `tableNa

我被难住了

假设我有一个表'1',有三列'a','B','C'。列“C”有一些空值。另一个表“2”有列“A”(与表“1”匹配)和“C”,其中“C”是完整的

如何在MYSQL中将表“2”中的值合并到表“1”中

我已经试过了,并且上下发誓它应该会起作用:

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

还有线索?提示?想法

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

UPDATE  `tableNameA` `a`  
SET     `a`.`C` = `b`.`C`  
FROM    `a` INNER JOIN `tableNameB` `b` ON `a`.`A` = `b`.`A`  
WHERE   `a`.`C` IS NULL;
我添加了
backtick
,以防您的某些字段包含此功能:

update t1, t2
set t1.c = t2.c
where t1.a = t2.a and t1.c is null;
根据更改的要求更新答案。T2可能是一个视图,因此连接可能是一个更好的主意。我对视图了解不多,所以我刚从更新行t2中移出。。。但我不确定它是否改变了什么

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

这很有魅力。非常感谢你。但我必须承认,在上面的示例中,“T2”实际上是一个表视图。如果没有这一步,也许可以使用另一个表中的SELECT来完成吗?好的,我已经更新了对需求更改的回答。两件事:请在提问时提供所有必要的信息,不要改变问题(也许问一个新问题会更好)。除此之外,当提供有效的解决方案时,请记住始终将您的问题标记为已回答。谢谢,明白了。我对这个网站很陌生,但我真的很感谢你的帮助。标记为已回答,并将在将来执行。