如何按需求将两张数据库表合并为指定结构的新表?
实现两张数据库表合并为指定结构的新表
1. 创建目标表(若尚未创建)
如果detail表还未创建,执行以下SQL语句生成对应结构:
create table detail ( idNumber varchar(20) not null, [year] varchar(4) not null, quarterly varchar(15) not null, indikator varchar(20) not null, subindikator varchar(100) not null );
2. 插入合并后的数据
根据需求,需要将person表的idNumber字段,与evaluation表的指定字段合并写入detail表。由于两张表未提供明确关联逻辑,以下语句会生成所有人员记录与所有评估记录的组合(笛卡尔积):
INSERT INTO detail (idNumber, [year], quarterly, indikator, subindikator) SELECT p.idNumber, e.[year], e.quarterly, e.indikator, e.subindikator FROM person p CROSS JOIN evaluation e;
关联场景补充
如果两张表存在实际关联条件(例如某字段存在对应关系),只需将CROSS JOIN替换为带条件的JOIN即可,示例如下:
-- 替换为实际关联字段与条件 INSERT INTO detail (idNumber, [year], quarterly, indikator, subindikator) SELECT p.idNumber, e.[year], e.quarterly, e.indikator, e.subindikator FROM person p JOIN evaluation e ON p.关联字段 = e.关联字段;
内容的提问来源于stack exchange,提问作者Gabriel A. Lumintang
相关产品推荐
相关产品推荐

