0

私は2つのテーブルを持っています。テーブル 1 からいくつかの ID を選択し、1 つの条件に基づいてテーブル 2 に挿入する必要があります。2 番目の列も tableA から取得する必要がありますが、異なる条件に基づいています

表 A

NC 1
NC 2
SC 3
SC 4

表 B

   1 100
    1 200
    2 100
    2 200

テーブルBに行を挿入したいので、このようになります....

1 100
1 200
2 100
2 200
3 100
3 200
4 100
4 200

状態条件 = 'SC' に基づいてテーブル A から 3 と 4 を選択していますが、NC が持つ 100 と 200 の値を選択する方法を知りたいです...

言い方が間違っていたらごめんなさい

4

2 に答える 2

2
-- sample data
create table tbla (code char(2), id int);
insert into tbla values ('NC', 1);
insert into tbla values ('NC', 2);
insert into tbla values ('SC', 3);
insert into tbla values ('SC', 4);

create table tblb (id int, value int);
insert into tblb values (1, 100);
insert into tblb values (1, 200);
insert into tblb values (2, 100);
insert into tblb values (2, 200);

-- your query to INSERT the new rows into tblb
insert into tblb
select x.id, y.value
from
(
    select distinct a.id
    from tbla a
    where a.code = 'SC'
) x
cross join
(
    select distinct b.value
    from tbla a
    join tblb b on a.id = b.id
    where a.code = 'NC' 
) y
left join tblb b on b.id = x.id and b.value = y.value
where b.id is null;
于 2013-05-01T20:30:08.693 に答える