Создать родительскую запись из дочерних записей - PullRequest
0 голосов
/ 24 апреля 2009

У меня следующая ситуация.

Я получаю данные из внешней системы в виде

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 ]

1 голос
/ 24 апреля 2009
insert parent (userId, group, name)
select distinct userId, group, concat("user ", userId, " - ", group, " data")
from input_data;

(где он имеет автоинкрементный идентификатор)

тогда:

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;
0 голосов
/ 24 апреля 2009

необходимо написать запрос, который может создать родительскую запись на основе различных комбинаций UserID и Group

insert into parent(UserID, Group, Name) 
select distinct 
UserID,  
Group, UserID, 
'User ' || UserID || ' - ' || Group || '  data'
from raw_input_data;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...