【发布时间】:2021-12-12 22:04:45
【问题描述】:
我正在尝试使用表 b 中某些列的数据更新表 a。两个表中的列名都匹配,无法弄清楚语法,有人可以帮忙吗?
这就是我想要做的(表达不合语法):
更新表_a SET table_a.col1 = table_b.col1,table_a.col2 = table_b.col2 WHERE table_a.id = table_b.id
也许(可能)我需要某种 JOIN 子句,但我还没有弄清楚这些...... :-/
【问题讨论】:
我正在尝试使用表 b 中某些列的数据更新表 a。两个表中的列名都匹配,无法弄清楚语法,有人可以帮忙吗?
这就是我想要做的(表达不合语法):
更新表_a SET table_a.col1 = table_b.col1,table_a.col2 = table_b.col2 WHERE table_a.id = table_b.id
也许(可能)我需要某种 JOIN 子句,但我还没有弄清楚这些...... :-/
【问题讨论】:
您可以使用两个表的 JOIN 来更新您的表:
UPDATE table_a a
INNER JOIN table_b b ON a.id = b.id
SET a.col1 = b.col1, a.col2 = b.col2
我看到你在使用 MYSQL。不确定上面的版本是否有效。如果没有,请尝试:
UPDATE table_a a
INNER JOIN table_b b
SET a.col1 = b.col1, a.col2 = b.col2
WHERE a.id = b.id
【讨论】:
好的,所以我自己找到了... :-)
MERGE(不使用 WHEN NOT MATCHED 子句)是我的问题的答案。
我的解决方案:
合并到 table_a 使用 table_b ON a.id=b.id 匹配时更新集 col1 = b.col1, col2 = b.col2;
【讨论】: