MYSQL - 更新另一个表中的多行

时间:2016-01-06 08:54:54

标签: mysql insert-update

我有2张桌子。一个来自昨天(300k行),另一个来自今天,具有相同的行数,但数据在某些列中发生了变化。

这两个表有大约120列。

如何仅更新更改 我尝试过使用删除:

   delete from tableA
   where id in (select id from tableB)

但它太慢了 也尝试了

   update tableA inner join tableB
   on tableA.id=TableB.id

它没有用。

enter image description here

2 个答案:

答案 0 :(得分:7)

您必须在更新查询中设置值才能获得更改。

示例:

update tableA inner join tableB on tableA.id=TableB.id
set tableA.col1=TableB.col1,
    tableA.col2=TableB.col2,
    tableA.col3=TableB.col3;

并且您还可以在where子句中添加更多条件,以便在已过滤的记录上运行查询。

答案 1 :(得分:0)

从tableA中删除    其中id为(从tableB中选择id)

而不是上述查询,请尝试以下方法: -

Delete tableA from tableA left Join tableB ON  tableA.id = tableB.id where tableB.id IS NOT NULL;