我有一个tableA,其中包含4000万条记录。它具有这种结构
Id A B C
1 N O 10
1 N O 20
2 B G 15
2 B G 25
3 E U 50
3 E U 60
我需要基于tableB中的值(其中id是唯一的)更改tableA中的A列和B列中的值。表B看起来像这样
Id A B
1 V M
2 Q W
3 E U
因此以表A的结果结束
Id A B C
1 V M 10
1 V M 20
2 Q W 15
2 Q W 25
3 E U 50
3 E U 60
由于表A和BI中的Id = 3是相同的,因此宁愿避免对那些记录从B写入A,以为这样会更有效?
我以为是这样
UPDATE tableA
SET A = (SELECT A
FROM tableB
WHERE tabelA.id = tableB.id)
但是不确定何时需要在同一步骤中更新几列,以及是否仅在tableA和tableB之间的数据确实不同时才进行更新。
您可以使用多表UPDATE
语法来联接表:
UPDATE tableA JOIN tableB USING (Id)
SET tableA.A = tableB.A,
tableA.B = tableB.B
在sqlfiddle上看到它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句