다음 열이 포함 된 테이블이 있습니다. a, b, e와 다른 테이블 인 table2는 c, d를 포함합니다. 두 테이블의 열은 name
입니다. 내부 조인을 사용할 때 다른 결과가 나타나는 이유
SELECT distinct a, b
from db.table
where e <>'65';
을 그리고 1885 개 기록
그럼, 좀 더 다른 테이블의 정보 (C, D)에 필요한 말을 얻었다. 이러한 추가 정보를 얻기 위해 내부 조인을 사용했습니다. 쿼리는 다음과 같이됩니다.
SELECT distinct a, b, c, d
from db.table
inner join db.table2
on table.name=table2.name2
where e <>'65';
이제는 동일한 결과를 기대했지만 추가 열 (c, d)이 있습니다. 그러나 나는 다른 수의 결과를 얻었습니다 : 51144. 더 많은 열을 추가하고 조건을 변경하지 않은 동안 왜 숫자가 증가했는지 설명 할 수 있습니까?
'DISTINCT' 악한 운영자가 척으로 :-) 대신입니다 아무 문제 없다 - 그냥 쓸 항상 ** 올바른이 ** 직교 제품 – zerkms
@zerkms을 반환하지 않는 쿼리가 완전히 aggreed 더있다, 그러나 당신 1-many 조인을 알고 있습니다. 이것은 데카르트 제품/교차 조인이 아닙니다. –
1 : N 엔티티 쿼리를 수행 할 때 결과 집합 행 수가 원래 1 엔티티 쿼리와 동일 할 것으로 예상하지 않습니다 .-) – zerkms