2012-11-03 48 views
0

連接兩個表我有兩個表這樣關於具有唯一索引

表 「X」

idX(pk) contentX(char) 
10   foo1 
21   foo2 
34   foo3 
45   foo4 

表 「Y」

idY(pk) contentY(char) 
11   boo1 
22   boo2 
33   boo3 
40   boo4 

而且加盟後,intsert到表併成爲此

idNew(pk) idX(UQ) content(char) idY(UQ) content(char) 
    1   10   foo1   11   boo1 
    2   21   foo2   22   boo2 
    3   34   foo3   33   boo3 
    4   45   foo4   40   boo4 

SQL我用的就是這樣的

INSERT INTO DataBase.newtable(idX, contentX,idY,contentY) 
     SELECT X.idX, Y.idY, contentX, contentY 
       FROM DataBase.X, DataBase.Y, ; 

但SQL語句不能插入到newtable的,因爲IDX和IDY需要是唯一的價值。我能做什麼?

+0

新表上的索引是什麼?如果新表中的每個字段都是單列索引,那麼您的示例應該沒有任何問題。 –

+0

該索引是新表上的新索引。如果我使用我的sql語句,newtable將是(X x Y)的結果。 – Samuel

+0

和SQL顯示「錯誤 - 1062:重複條目」錯誤。 – Samuel

回答

0

您需要指定該插入的連接字段,否則您將獲得兩個表的笛卡爾乘積(即,16行)。如果在idx和idy字段上有唯一索引,則此約束會導致插入失敗。

+0

但是如何在連接後對不需要的行進行分類。這是我真的不知道如何實現的部分。 – Samuel