我很难过。
假设我有一张桌子,'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;
线索?提示?想法?
答案 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