我有一个表 A,其中包含 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
Run Code Online (Sandbox Code Playgroud)
我需要根据表 B 中的值(其中 id 是唯一的)更改表 A 中 A 列和 B 列中的值。表 B 看起来像这样
Id A B
1 V M
2 Q W
3 E U
Run Code Online (Sandbox Code Playgroud)
最终得到表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
Run Code Online (Sandbox Code Playgroud)
由于 Id=3 在表 A 和 BI 中都是相同的,因此宁愿避免将这些记录从 B 写入到 A,认为这样会更有效吗?
我沿着这些思路思考
UPDATE tableA
SET A = (SELECT A
FROM tableB
WHERE tabelA.id = tableB.id)
Run Code Online (Sandbox Code Playgroud)
但不确定何时需要在同一步骤中更新多个列,以及仅在表 A 和表 B 之间的数据确实不同时才更新。
您可以使用多表UPDATE语法来连接表:
UPDATE tableA JOIN tableB USING (Id)
SET tableA.A = tableB.A,
tableA.B = tableB.B
Run Code Online (Sandbox Code Playgroud)
在sqlfiddle上查看它。
| 归档时间: |
|
| 查看次数: |
17139 次 |
| 最近记录: |