问题描述
我有两个sql(postgres)表,我需要从一个表到另一表插入一列。 注意每个表包含大约1亿条记录
例如,我的表架构:
first_table:
id int,first_column int,second_column int,third_column;
second_table:
id int,fourth_column int;
两个表中的Note id列都是主键。
我需要获取下表:
first_table:
id int,third_column int,fourth_column int;
几句话,我需要基于id(主键)列合并这两个表。
我尝试过:
UPDATE first_column AS f
SET fourth_column = t.fourth_column
FROM second_table AS t
WHERE f.id = t.id;
此方法有效,但是每个sql表包含大约1亿条记录,并且此解决方案要花费很多时间(对我的程序来说很关键)。
- 使用某些类型的postgres连接,但是文档中的示例令我失望。
是否存在一些可以在短时间内进行此更新/传输的方法或规则。也许我应该使用一些高级的大数据库,例如Sparksql或其他。
关于, qwew
解决方法
我假设您已经有一个可以成功填充first_table
和second_table
的系统。
如果是这种情况,则在需要将数据放在一起时将两个表连接起来:
select f.id,f.first_column,f.second_column,f.third_column,s.fourth_column
from first_table f
join second_table s
on s.id = f.id
where f.first_column = 200
and s.fourth_column = 110
如果表中有1亿条记录,那么我假设您正在使用一些条件来限制返回的行,例如我的示例中的where
子句。