2013-10-16 29 views
0

爲了簡單起見,我有兩個表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

有沒有辦法'從A,B'選擇*給任何字段的空值。 – geomagas

回答

1
insert into TableC (id, src) 
select ID, 'A' from tableA 
union 
select ID, 'B' from tableB