2010-04-25 3 views
-1

내부 조인을 교차 조인으로 생각한 다음 조건을 만족하는 레코드를 가져 오는 경우 LEFT OUTER JOIN은 그 것으로 간주 될 수 있으며 왼쪽 테이블에서 조건을 충족시키지 않는 레코드 하나가 있다고 생각할 수 있습니다.내부 결합, 교차 결합 및 외부 외부 결합의 차이점은 무엇입니까?

다시 말해, 왼쪽 레코드가 여러 번 나타날 수 있기 때문에 (조건이 충족되지 않는 경우에도) 왼쪽 레코드에서 "간다"는 교차 결합이 아닙니다 오른쪽 표에).

따라서 LEFT OUTER JOIN은 조건을 만족하는 레코드가있는 교차 JOIN이고 조건을 만족하지 않는 LEFT TABLE의 레코드가 하나입니다.

+5

내 뇌가 inter-joined ... 잠깐, 이것도 질문입니까? –

답변

1

왼쪽 외부 조인이 "조건을 만족시키는 레코드와 교차 결합하고 조건을 충족시키지 못하는 왼쪽 테이블에 대해 하나의 레코드"라고 말하는 것이 옳지 않다고 생각하지 않습니다.

조건이없는 내부 조인은 교차 조인과 같습니다. x에 대한 내부 조인은 x와 같은 조인 조인과 같습니다. 그러나 잘못된 것이 더 명확하고 어렵 기 때문에 처음을 선호합니다.

그러나 외부 조인을 사용하면 항상 "조건을 만족하지 않는"행을 얻는 것은 아닙니다. 왼쪽 외부 사이의 차이가 가입하고 내부는 조인은 다음과 같습니다

  • 내부 조인 다음 오른쪽 테이블의 모든 행에 대해 실패 왼쪽 테이블의 행 조인 조건을 경우 해당 행을하지 않습니다.
  • 외부 조인 : 오른쪽 테이블의 모든 행에 대해 왼쪽 테이블의 행에 대한 조인 조건이 실패하면 오른쪽 테이블의 열에 NULL이있는 왼쪽 테이블의 행을 가져옵니다.

일치하는 행과 일치하지 않는 행을 모두 얻지 못합니다. 첫 번째 상황이나 두 번째 상황을 모두 얻지 못합니다. 당신의 진술은 당신이 둘 다 얻을 수 있다고 제안하는 것 같습니다.

+0

흠, 내가 생각하기에, LEFT 테이블의 레코드가 조건을 만족시킬 수 있다고 생각했는데 결과 테이블에 들어갔다.하지만 LEFT 테이블의 레코드가 그렇지 않으면 하나의 행을 가져온다. 필드가 NULL 임). 그래서 그것은 둘 중 하나 일 것입니다/아니면 양쪽 모두가 아닙니다 ... –

+0

@ Jian Lin :이 문장은 정확하게는 정확하지 않습니다 : "LEFT 테이블의 레코드가 조건을 만족할 수있을 때 결과 테이블에 들어갑니다". 왼쪽 표의 행과 오른쪽 표의 행이 함께 * 조건을 만족해야합니다. –

+0

hm ... 조건 만족 : 조건은 거의 항상 LEFT 테이블과 RIGHT 테이블에서 하나의 값을가집니다. 자기 조인이라 할지라도 왼쪽 테이블과 오른쪽 테이블로 볼 수 있습니다. 급여가 10000을 초과하는 조인을 보지 않으면 오른쪽 표의 필드가 포함되지 않습니다. –