2014-05-09 4 views
-1

두 열에 대해 조인을 적용 해 보았습니다.mysql 쿼리가 예기치 않은 행 수를 반환합니다.

SELECT 
abc.* 
FROM abc 
INNER JOIN xyz 
ON abc.column1 = xyz.column1 
INNER JOIN xyz AS xyz2 
ON abc.column2 = xyz2.column2 

이 쿼리의 결과에는 단 하나의 행만 반환해야하는 동일한 데이터가있는 81 개의 행이 들어 있습니다.

DISTINCT로 시도했지만 나에게 적합하지 않습니다.

결과 테이블 (abc)에는 column1 및 column2의 데이터가 반복 될 수있는 열 id, column1, column2가 있습니다.

그러나 그렇습니다. column1과 column2의 조합은 결코 반복되지 않습니다.

그래서 어떻게 결과에 두 개의 열에 대해 DISTINCT를 추가 할 수 있습니까?

누구나 나를 도울 수 있습니까? 예기치 않은 숫자의 동일한 데이터를 얻기 위해 어떻게 제한합니까?

+0

별개로 선택 하시겠습니까? – ggdx

+0

데이터를 필터링하지 않습니다. 그냥 한 줄일까요? –

+0

수정 된 질문 게시글을 보시기 바랍니다. – user3305818

답변

0

아마 여러 번 일치하기 때문에 데이터가 곱셈되고있는 것 같습니다. 아마도 당신은 다음을 의미합니다 :

select abc.* 
from abc 
where exists (select 1 from xyz where abc.column1 = xyz.column1) and 
     exists (select 1 from xyz where abc.column2 = xyz.column2); 
+0

답이 맞지만 xyz 테이블에서 열을 선택할 수 없습니다. – user3305818

+0

@ user3305818 . . 귀하의 질문에'xyz' 테이블에서 열을 선택하는 언급하지 않습니다. 그것은 아주 명시 적으로'select abc. * '라고 말합니다. –

관련 문제