sql-server - 차이 - sql 조인+




LEFT JOIN 대 SQL Server의 LEFT OUTER JOIN (11)

LEFT JOINLEFT OUTER JOIN 의 차이점은 무엇입니까?


귀하의 질문에 대한 답변 을 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] 입니다.
    ( SELECT 문의 FROM 절에서) 조인 할 테이블을 나열하고 쉼표로 구분하는 시나리오와 유사합니다.

유의 사항 :

  • 기본적으로 JOIN 을 언급하면 ​​기본적으로 INNER JOIN 입니다.
  • OUTER 조인은 LEFT | RIGHT | 당신은 단순히 OUTER JOIN 이라고 말할 수 없습니다.
  • OUTER 키워드를 삭제하고 LEFT JOIN 또는 RIGHT JOIN 또는 FULL JOIN 이라고 말하면됩니다.

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


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

아무것도 . LEFT JOINLEFT OUTER JOIN 은 동일합니다.


단 3 개의 조인이 있습니다.

  • A) 교차 결합 = 직교 (예 : 표 A, 표 B)
  • B) 내부 조인 = 조인 (예 : 테이블 A 조인 / 내부 조인 테이블 B)
  • C) 외부 조인 :

       There are three type of outer join
       1)  Left Outer Join     = Left Join
       2)  Right Outer Join    = Right Join
       3)  Full Outer Join     = Full Join    
    

희망이 도움이 될 것입니다.


LEFT / RIGHT와 LEFT OUTER / RIGHT OUTER가 같은 이유는 무엇입니까? 왜이 어휘를 설명할까요? LEFT 및 RIGHT 조인은 OUTER 조인의 특정 경우이므로 OUTER LEFT / OUTER RIGHT 이외의 다른 조인이 될 수 없음을 이해하십시오. OUTER 조인은 OUTER 조인의 PARTIAL 결과 인 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)

이러한 작업에 별칭이있는 이유는 분명하며 3 가지 경우 (INNER, OUTER, CROSS) 만 존재합니다. OUTER에 대한 두 개의 하위 사례가 있습니다. 위의 답변뿐만 아니라 어휘, 교사가 이것을 설명하는 방법은 종종 다양한 유형의 참여가있는 것처럼 보입니다. 그러나 실제로는 매우 간단합니다.


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

그래서 (적어도 PostgreSQL에서) 문서를 보면 다음 문구를 찾을 수 있습니다 :

" INNEROUTER 는 모든 형식에서 선택 사항이며 INNER 가 기본값이며 LEFT , RIGHTFULL 은 외부 조인을 의미합니다."

즉,

LEFT JOINLEFT OUTER JOIN .

RIGHT JOINRIGHT OUTER JOIN .

나는 아직도 대답을 찾으려고 노력하는 사람들에게 도움이되기를 바랍니다.


나는 이것이 오래된 두 개의 센트를 넣고 싶다는 것을 알고 있습니다. LEFT JOINLEFT OUTER JOIN 과 같아야하지만, LEFT JOINLEFT OUTER JOIN 보다 다른 결과를 가져 오는 것을 보았습니다. 더 구체적이고 적절하게 OUTER 을 사용하기 시작했습니다. LEFT JOIN 돌아와야하는 행은 LEFT OUTER JOIN 사용할 때와 같은 위치에 있지 않았습니다. 나는 그가 필요로하는 행을 얻을 수 없을 때 동료에게 이것을 설명하려고 노력했다. 그래서 나는 그를 보여주기 위해 어떤 종류의 후원을하기 위해 차이점을 구글에 결정했다. 이것은 제가 확신 할 수없는 SQL Server 고유의 것일 수 있습니다. 모범 사례에서는 명시 적으로 외부 조인을 원한다고 명시하는 것이 더 바람직하다고 말할 수 있습니다. 그냥 내 의견.


이 말 옆에 아무 말도 할 말이 없다.


이미 여기에서 언급했듯이, 차이점은 없습니다. 핵심 세계 OUTER 은 우리가 작성할 수있는 쿼리에서 표현력을 잃지 않고도 SQL 키워드 사전에서 제거 될 수 있습니다.

또한, 그 중 하나만으로 충분하기 때문에 RIGHTLEFT 키워드가 모두 필요하지 않습니다. SELECT * FROM A RIGHT JOIN B on A.ID = B.IDSELECT * FROM B LEFT JOIN A on A.ID = B.ID 입니다. 나는이 모든 여분의 용어들이 학생들과 초보 사람들을 혼란스럽게한다는 것을 알았다.


주로 3 가지 유형의 JOIN이 있습니다.

  1. 내부 : 두 테이블 모두에있는 데이터를 가져옵니다.
    • JOIN은 INNER JOIN을 의미합니다.
  2. 겉감 : 세 종류가 있습니다.

    • LEFT OUTER - - 왼쪽 테이블 및 일치 조건에있는 데이터 만 가져옵니다.
    • RIGHT OUTER - - 오른쪽 테이블 및 일치 조건에서만 데이터를 가져옵니다.
    • FULL OUTER - - 테이블 중 하나 또는 모두를 나타내는 데이터를 가져옵니다.
    • (LEFT 또는 RIGHT 또는 FULL) OUTER JOIN은 "OUTER"쓰기없이 쓸 수 있습니다.
  3. 교차 가입 : 모든 것을 모두 참여


통사론 (syntactic sugar)은 내부자가 아니라는 캐주얼 독자에게 더 분명하게 보여줍니다.


Left JoinLeft Outer Join 은 하나이며 동일 합니다. 전자는 후자에 대한 속기입니다. Right JoinRight Outer Join 관계에 대해서도 마찬가지입니다. 시위는 평등을 설명 할 것입니다. 각 쿼리의 작업 예제는 SQL Fiddle을 통해 제공됩니다. 이 도구를 사용하면 쿼리를 조작 할 수 있습니다.

주어진

왼쪽 결합왼쪽 외부 결합

결과

오른쪽 결합오른쪽 외부 결합

결과





outer-join