2012-11-03 5 views
0

두 테이블에 합류에 대해 나는 테이블에 intsert, 두 개의 테이블이고유 인덱스

테이블 "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 

처럼 그리고 가입 후이 이된다

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 문은 IDX 및 idY이 고유 한 값으로 필요하기 때문에 newtable을 삽입 할 수 없습니다. 내가 무엇을 할 수 있을지?

+0

새 테이블의 인덱스는 무엇입니까? 새 테이블의 각 필드가 단일 열 인덱스 인 경우 예제에 문제가 없어야합니다. –

+0

색인은 새 테이블의 새로운 색인입니다. 내 SQL 문을 사용하는 경우 newtable은 (X x Y)의 결과가됩니다. – Samuel

+0

과 SQL에 "Error - 1062 : 중복 항목"오류가 표시됩니다. – Samuel

답변

0

해당 삽입에 대한 조인 필드를 지정해야합니다. 그렇지 않으면 두 테이블의 카디 전 곱 (즉, 16 행)을 가져옵니다. idx W idy 필드에 고유 인덱스가있는 경우이 제한 조건으로 인해 삽입이 실패합니다.

+0

하지만 조인 후에 불필요한 행을 정렬하는 방법. 그것이 구현 방법을 모르는 부분입니다. – Samuel

관련 문제