추천, 2024

에디터의 선택

왼쪽, 오른쪽 및 완전 외부 조인의 차이점

앞서 우리는 Outer Join의 유형을 개괄 한 Inner Join과 Outer Join의 차이점에 대해 논의했습니다. 외부 조인은 조인 작업 중에 손실되었을 수있는 결과의 튜플을 보존하는 것입니다. 이 기사에서; 우리는 Outer Join 유형 간의 차이점에 대해 논의 할 것입니다. 외부 조인에는 세 가지 유형이 있습니다. 왼쪽 외부 조인, 오른쪽 외부 조인 및 완전 외부 조인. 왼쪽, 오른쪽 및 완전 외부 조인은 실행 계획이 다르며 결과도 서로 다릅니다. Left, Right, Full Outer Join에서 Outer word를 생략 할 수 있습니다. 아래 비교 차트의 도움으로 왼쪽, 오른쪽 및 전체 외부 조인의 차이점을 살펴 보겠습니다.

비교 차트

비교의 근거왼쪽 외부 조인오른쪽 외부 조인전체 외부 조인
기본왼쪽 테이블의 모든 튜플이 결과에 남아 있습니다.오른쪽 테이블의 모든 튜플이 결과에 남아 있습니다.왼쪽 테이블과 오른쪽 테이블의 모든 튜플이 결과에 남아 있습니다.
NULL 확장오른쪽 테이블에 일치하는 튜플이없는 왼쪽 테이블의 튜플은 오른쪽 테이블의 특성에 대해 NULL 값으로 확장됩니다.왼쪽 테이블에 일치하는 튜플이없는 오른쪽 테이블의 튜플은 왼쪽 테이블의 특성에 대해 NULL 값으로 확장됩니다.
오른쪽과 왼쪽 테이블에 각각 일치하는 튜플이없는 오른쪽 테이블과 왼쪽 테이블의 튜플은 오른쪽 테이블과 왼쪽 테이블의 특성에 대해 NULL 값으로 확장됩니다.

왼쪽 외부 조인의 정의

우리가 " Table_A Left Outer Join Table_B "라고 가정 해 봅시다. 그래서 Table_ALeft Outer Join 연산의 왼쪽에 나타나는 표입니다. Table_B 는 우리의 오른쪽 표입니다.

처음에는 Table_A와 Table_B에 내부 조인 을 적용하여 테이블 A와 B에서 일치하는 튜플을 모두 반환합니다.

그런 다음 Table_B에 일치하는 튜플이없는 Table_A의 모든 튜플을 반환합니다. 따라서, 결과로 생성되는 튜플은 오른쪽 테이블의 속성에 대해 NULL 값으로 패딩됩니다.

따라서 왼쪽 외부 조인에서 얻은 결과 는 왼쪽 테이블의 모든 튜플과 오른쪽 테이블의 일치하는 튜플 만 유지합니다.

예제를 통해 Left Outer Join을 논의 해 보겠습니다. 아래에는 학생 표와 부서 표라는 두 개의 표가 있습니다.

이제 Student and Department Table에 대한 Left Outer Join을 적용 할 것입니다.

SELECT * 학생 LEFT OUTER JOIN 부서에서
ON 학생. Student_ID = Department.Student_ID

위 쿼리에서 Student 테이블은 왼쪽 테이블이고 Department 테이블은 오른쪽 테이블입니다. 따라서 Left Outer Join에 따르면 결과에는 Student 테이블의 모든 튜플과 Department 테이블의 일치하는 튜플 만 있어야합니다.

왼쪽 외부 조인에서 얻은 결과를 관찰하십시오. Student 테이블의 모든 튜플과 Student 테이블과 Department 테이블의 일치하는 튜플을가집니다. Jimmy의 student_id, Student 테이블의 Joseph Harry가 Department 테이블에 없었습니다. 따라서 Jimmy, Joseph Harry의 Department 테이블의 특성 값은 NULL로 확장됩니다.

오른쪽 외부 조인의 정의

우리가 " Table_A 오른쪽 외부 조인 Table_B "있다고 가정합니다. 그래서 Table_ARight Outer Join 연산의 왼쪽에 나타나는 표이고 Table_B우의 표입니다.

왼쪽 외부 조인과 마찬가지로 처음에는 Table_ATable_B내부 조인 을 적용하여 테이블 A와 B에서 일치하는 모든 튜플을 반환합니다.

그런 다음 Table_A에 일치하는 튜플이없는 Table_B의 모든 튜플을 반환합니다. 따라서, 결과로 생성되는 튜플은 왼쪽 테이블의 속성에 대해 NULL 값으로 패딩됩니다.

따라서 오른쪽 외부 조인에서 얻은 결과는 오른쪽 테이블의 모든 튜플과 왼쪽 테이블의 일치하는 튜플 만 유지합니다.

예제를 통해 Right Outer Join을 논의 해 보겠습니다. 위의 표에는 학생 표와 부서 표가 있습니다.

이제 오른쪽 외부 조인 을 학생 테이블과 부서 테이블에 적용합니다.

SELECT * 학생 오른쪽 외부 조인 부서
ON 학생. Student_ID = Department.Student_ID

위 쿼리에서 학생 표는 왼쪽 표이고 부서 표는 오른쪽 표입니다. 오른쪽 외부 조인 작업에 따라 결과에는 부서 테이블의 모든 튜플과 학생 테이블의 일치하는 튜플 만 포함되어야합니다.

오른쪽 외부 조인에서 얻은 결과를 관찰하십시오. 부서 테이블의 모든 튜플과 학생 테이블과 부서 테이블의 일치하는 튜플이 있습니다. Department 테이블의 Student_ID 10536 및 00954는 Student 테이블에 없습니다. 따라서 Student_ID 10536 및 00954의 Name 속성 값은 NULL로 확장됩니다.

전체 외부 조인의 정의

우리가 " Table_A Full Outer Join Table_B "을 가지고 있다고 가정합니다. 따라서 Table_A 는 Full Outer Join 작업의 왼쪽에 표시되는 왼쪽 테이블이며 Table_B오른쪽 테이블입니다.

전체 외부 조인은 왼쪽 외부 조인오른쪽 외부 조인조합 입니다. 처음에는 Table_ATable_B내부 조인 을 적용하여 두 표에서 일치하는 튜플을 검색합니다. 그런 다음 Table_B 에 일치하는 튜플이없는 NULLTable_A의 해당 튜플을 확장합니다. 또한 Table_A 에 일치하는 튜플이없는 NULL 로 Table_B의 튜플을 확장합니다.

따라서 완전 외부 조인은 두 테이블의 일치하는 튜플과 함께 오른쪽 테이블뿐만 아니라 왼쪽에서 모든 튜플을 유지합니다.

FULL outer join에 대해 예를 들어 설명하겠습니다. 우리는 위의 두 테이블, 학생 표와 부서 표를 가지고 있습니다.

이제 전체 외부 조인을 학생 테이블과 부서 테이블에 적용합니다.

SELECT * FROM 학생 전과정 부서
ON 학생. Student_ID = Department.Student_ID

위 쿼리에서 Student Table은 왼쪽 테이블이고 Department Table은 오른쪽 테이블입니다. 전체 외부 조인 (Full Outer Join)에 따르면 결과에는 두 표의 모든 튜플이 포함되어야합니다.

완전 외부 조인에서 얻은 결과를 관찰하십시오. 학생과 부서 테이블의 모든 튜플과 학생 테이블과 부서 테이블의 일치하는 튜플이 있습니다. Student 테이블의 Jimmy, Joseph Harry 의 student_id 즉, 10026, 02256, 56362 는 Department 테이블에 없습니다. 따라서 Jimmy, Joseph Harry의 Department 테이블의 특성 값은 NULL 로 확장 됩니다 . Department 테이블의 Student_ID 10536 및 00954 는 Student 테이블의 Student_ID 열에 없습니다. 따라서 Student_ID 10536 및 00954에 대한 Name 특성의 특성 값은 NULL 로 확장 됩니다 .

왼쪽, 오른쪽 및 전체 외부 조인 간의 주요 차이점

  1. Left Outer Join의 결과는 왼쪽 테이블의 모든 튜플을가집니다. 마찬가지로 오른쪽 외부 조인의 결과에는 오른쪽 테이블의 모든 튜플이 있습니다. Full Outer Join의 결과는 왼쪽과 오른쪽 테이블의 모든 튜플을가집니다.
  2. 왼쪽 외부 조인에서 오른쪽 테이블에 일치하는 튜플이없는 왼쪽 테이블의 튜플은 오른쪽 테이블의 특성에 대해 Null 값으로 확장됩니다. Right Outer Join의 경우와 정반대입니다. Full Outer Join에서는 오른쪽과 왼쪽 테이블에 일치하는 튜플이없는 왼쪽 테이블과 오른쪽 테이블의 튜플이 각각 오른쪽 및 왼쪽 테이블의 특성에 대해 NULL로 확장됩니다.

결론:

쿼리에서 테이블 이름의 위치를 ​​관리하십시오. 쿼리에서 테이블 이름의 위치가 테이블이 왼쪽 테이블 또는 오른쪽 테이블로 간주 될지 여부를 결정합니다.

Top