0

我有 2 张桌子。我需要从表一中选择一些 id 并基于一个条件并插入到表 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

我根据状态 condtion = '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 回答
0

您可以通过以下查询来完成:

Select a.id, b.value
from "Table A" a
join "Table B" b
 on b.id=1 --This condition pick the two first rows on table B.
where a.condtion = 'SC'

这不是一个优雅的解决方案,但它确实有效。

于 2013-05-01T20:37:41.817 回答