[sql-server] SQL Server의 왼쪽 조인 vs. 왼쪽 바깥 조인

차이점은 무엇이며 LEFT JOIN그리고 LEFT OUTER JOIN?



답변

설명서에 따라 FROM (Transact-SQL) :

<join_type> ::=
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
    JOIN

키워드 OUTER는 선택 사항으로 표시됩니다 (대괄호로 묶음). 이 특정한 경우에, 당신이 지정하는지의 여부 OUTER는 차이가 없습니다. 의 다른 요소 절에 가입하면서도 떠나, 옵션으로 표시되어 있습니다 그들을 밖으로 차이를 확인하십시오.

예를 들어, JOIN절의 전체 type-part 는 선택 사항입니다.이 경우 기본값은 INNER단지 지정 하는 경우 JOIN입니다. 다시 말해, 이것은 합법적입니다.

SELECT *
FROM A JOIN B ON A.X = B.Y

동등한 구문 목록은 다음과 같습니다.

A LEFT JOIN B            A LEFT OUTER JOIN B
A RIGHT JOIN B           A RIGHT OUTER JOIN B
A FULL JOIN B            A FULL OUTER JOIN B
A INNER JOIN B           A JOIN B

또한이 다른 SO 질문에 남은 대답을 살펴보십시오 .SQL 왼쪽 조인 대 FROM 행의 여러 테이블? .

여기에 이미지 설명을 입력하십시오


답변

귀하의 질문에 대답하기 위해 LEFT JOIN과 LEFT OUTER JOIN의 차이점은 없습니다 .

최상위 수준에는 주로 3 가지 유형의 조인이 있습니다.

  1. 안의
  2. 밖의
  3. 가로 질러 가다

  1. INNER JOIN- 두 테이블 모두에있는 경우 데이터를 가져옵니다.

  2. OUTER JOIN3 가지 유형입니다.

    1. LEFT OUTER JOIN -왼쪽 테이블에있는 경우 데이터를 가져옵니다.
    2. RIGHT OUTER JOIN -오른쪽 테이블에 데이터가 있으면 가져옵니다.
    3. FULL OUTER JOIN -두 테이블 중 하나에있는 경우 데이터를 가져옵니다.
  3. 이름에서 알 수 있듯이 CROSS JOIN[n X m]모든 것을 모든 것과 결합시킵니다. 쉼표를 사용하여 분리하기 위해 명령문
    FROM절에 조인 테이블을 간단히 나열하는 시나리오와 유사 SELECT합니다.


주목할 사항 :

  • 방금 언급 JOIN한 경우 기본적으로 a INNER JOIN입니다.
  • OUTER있어야한다 조인 LEFT| RIGHT| FULL당신은 단순히 말할 수 없습니다 OUTER JOIN.
  • OUTER키워드 를 삭제 하고 LEFT JOINor RIGHT JOIN또는 이라고 말하면 FULL JOIN됩니다.

더 나은 방법으로 이들을 시각화하려면 다음 링크로 이동하십시오.
SQL 조인에 대한 시각적 설명


답변

왼쪽 조인과 왼쪽 외부 조인의 차이점은 무엇입니까?

아무것도 없습니다 . LEFT JOIN그리고 LEFT OUTER JOIN동등합니다.


답변

외부 조인과 외부 조인의 차이를 이해할 수있는 한 PostgreSQL DBA입니다. 차이점은 인터넷 전체에서 상당한 토론을하는 주제입니다. 오늘까지 나는 그 두 가지의 차이점을 보지 못했습니다. 그래서 나는 더 나아가서 그 차이점을 찾으려고 노력합니다. 결국 나는 그것에 관한 전체 문서를 읽었고 이에 대한 답을 찾았습니다.

따라서 문서 (적어도 PostgreSQL에서)를 보면이 문구를 찾을 수 있습니다.

“단어 INNER와는 OUTER. 모든 형태의 선택 사항 INNER, 기본값 LEFT, RIGHTFULL외부 조인을 의미한다.”

다시 말해

LEFT JOINLEFT OUTER JOIN같다

RIGHT JOINRIGHT OUTER JOIN같다

나는 그것이 여전히 답을 찾으려고 노력하는 사람들에게 기여할 수 있기를 바랍니다.


답변

Left Join그리고 Left Outer Join다른 하나는 있습니다 동일 . 전자는 후자의 속기입니다. Right JoinRight Outer Join관계 에 대해서도 마찬가지 입니다. 데모는 평등을 보여줄 것입니다. 각 쿼리의 실제 예제는 SQL Fiddle을 통해 제공되었습니다 . 이 도구를 사용하면 쿼리를 직접 조작 할 수 있습니다.

주어진

여기에 이미지 설명을 입력하십시오

왼쪽 결합왼쪽 외부 결합

여기에 이미지 설명을 입력하십시오

결과

여기에 이미지 설명을 입력하십시오


오른쪽 조인오른쪽 바깥 조인

여기에 이미지 설명을 입력하십시오

결과

여기에 이미지 설명을 입력하십시오


답변

다음 순서로 조인을 생각하는 것이 더 쉽다는 것을 알았습니다.

  • CROSS JOIN-두 테이블의 데카르트 곱. 모든 조인은 여기에서 시작합니다
  • 내부 가입-필터가 추가 된 CROSS JOIN.
  • 외부 조인-요소가 누락 된 내부 조인 (왼쪽 또는 오른쪽 테이블에서)이 나중에 추가됩니다.

이 (상대적으로) 간단한 모델을 알아낼 때까지 JOINS는 항상 약간의 검은 예술이었습니다. 이제 그들은 완벽하게 이해됩니다.

이것이 혼란보다 더 도움이되기를 바랍니다.


답변

LEFT / RIGHT와 LEFT OUTER / RIGHT OUTER가 같은 이유는 무엇입니까? 왜이 어휘를 설명해 봅시다. LEFT 및 RIGHT 조인은 OUTER 조인의 특정 사례이므로 OUTER LEFT / OUTER RIGHT 이외의 다른 것은 될 수 없습니다. OUTER 조인은 OUTER 조인의 부분 결과 인 LEFT 및 RIGHT 조인과 달리 FULL OUTER 라고도 합니다. 과연:

Table A | Table B     Table A | Table B      Table A | Table B      Table A | Table B
   1    |   5            1    |   1             1    |   1             1    |   1
   2    |   1            2    |   2             2    |   2             2    |   2
   3    |   6            3    |  null           3    |  null           -    |   -
   4    |   2            4    |  null           4    |  null           -    |   -
                        null  |   5             -    |   -            null  |   5
                        null  |   6             -    |   -            null  |   6

                      OUTER JOIN (FULL)     LEFT OUTER (partial)   RIGHT OUTER (partial)

INNER, OUTER, CROSS의 3 가지 사례 만 존재하는 것은 물론 이러한 작업에 별칭이있는 이유가 명확 해졌습니다. OUTER를위한 2 개의 서브 케이스. 교사가 이것을 설명하는 방법과 어휘, 위의 답변은 종종 다양한 유형의 참여가있는 것처럼 보입니다. 그러나 실제로는 매우 간단합니다.