MYSQL Maria DB - 比较2个表A和B并更新记录

时间:2016-12-22 04:37:02

标签: mysql

我有2个表A和B.我想将表A与表B进行比较,对于任何不匹配的记录,我想将表A中的整个记录​​更新为表B.我们有2个主键,有大约4千万条记录

我们可以在一个SQL或脚本中实现这一点吗?或者我可以创建临时表(表c),其中我可以编写不匹配的表A记录,然后使用临时表C更新表B.这将在MY SQL工作台中使用mariaDB DB。

添加了其他信息 - 我有2个主键和15列。因此,理想情况下,必须匹配13列并发现不匹配,假设两个表中的主键匹配。

请提供任何反馈意见,并提供帮助和赞赏。

1 个答案:

答案 0 :(得分:1)

一种方法是将B表的左连接更新到A表,并使用后者的值更新前一表中的所有列。请注意,WHERE子句检查以确保B中的记录与A中的任何记录匹配。

UPDATE TABLE_B b
LEFT JOIN TABLE_A a
    ON a.col1 = b.col1 AND
       a.col2 = b.col2     -- AND all other columns
SET b.col1 = a.col1,
    b.col2 = a.col2        -- AND set all other columns
WHERE a.col1 IS NULL