为了简单起见,我有两个表A和B,每个表都有一列,它们是主键。
A包含值(1,2,3)
B包含(1,2,3)
第三个表需要插入A和B,并且具有复合主键。
Table C (id, src)
如果id来自表A,我希望src为'A',如果它来自B,那么'B'。
表之间可能存在重复的ID,但它们不是同一个项,这就是我需要根据行来自哪个表来创建复合键的原因。 我试过了
Insert into C (anID, src)
Select
Case when (A.anID is not null)
then A.anID else B.anID end,
case when (A.anID is not null)
then 'A' else 'B' end
from
A,
B
但是我的结果总是只有3行(1, A) (2,A) (3,A)
当应该有6行(每个行中有一行有B行)
答案 0 :(得分:1)
insert into TableC (id, src)
select ID, 'A' from tableA
union
select ID, 'B' from tableB