从子记录生成父记录

时间:2009-04-23 21:36:17

标签: sql

我有以下情况。

我以

的形式从外部系统获取数据
UserId  Group  Value
1       Abc    .....
1       Abc    .....
1       Bcd    .....
2       Abc    .....

我需要将这些数据按到我的模式中,即

Parent Table
ID    UserID    Group    Name
1     1         Abc      User 1 - Abc data
2     1         Bcd      User 1 - Bcd data
3     2         Abc      User 2 - Abc data

Child Table
ParentID  Value
1         .....
1         .....
2         .....
3         .....

因此,子数据与外部系统数据之间存在1比1的关系。 问题是我从子数据开始,需要编写一个查询,可以根据UserID和Group的不同组合创建父记录

2 个答案:

答案 0 :(得分:1)

insert parent (userId, group, name)
select distinct userId, group, concat("user ", userId, " - ", group, " data")
from input_data;

(它有一个自动增量ID)

然后:

insert child (parentId, value)
select p.parentId, d.value
from parent p
inner join input_data d on p.user_id = d.user_id and p.group = d.group;

答案 1 :(得分:0)

  

需要编写一个可以根据UserID和Group

的不同组合创建父记录的查询
insert into parent(UserID, Group, Name) 
select distinct 
UserID,  
Group, UserID, 
'User ' || UserID || ' - ' || Group || '  data'
from raw_input_data;