
비교 차트
비교의 근거 | 왼쪽 외부 조인 | 오른쪽 외부 조인 | 전체 외부 조인 |
---|---|---|---|
기본 | 왼쪽 테이블의 모든 튜플이 결과에 남아 있습니다. | 오른쪽 테이블의 모든 튜플이 결과에 남아 있습니다. | 왼쪽 테이블과 오른쪽 테이블의 모든 튜플이 결과에 남아 있습니다. |
NULL 확장 | 오른쪽 테이블에 일치하는 튜플이없는 왼쪽 테이블의 튜플은 오른쪽 테이블의 특성에 대해 NULL 값으로 확장됩니다. | 왼쪽 테이블에 일치하는 튜플이없는 오른쪽 테이블의 튜플은 왼쪽 테이블의 특성에 대해 NULL 값으로 확장됩니다. | 오른쪽과 왼쪽 테이블에 각각 일치하는 튜플이없는 오른쪽 테이블과 왼쪽 테이블의 튜플은 오른쪽 테이블과 왼쪽 테이블의 특성에 대해 NULL 값으로 확장됩니다. |
왼쪽 외부 조인의 정의
우리가 " Table_A Left Outer Join Table_B "라고 가정 해 봅시다. 그래서 Table_A 는 Left 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 테이블의 일치하는 튜플 만 있어야합니다.

오른쪽 외부 조인의 정의
우리가 " Table_A 오른쪽 외부 조인 Table_B "있다고 가정합니다. 그래서 Table_A 는 Right Outer Join 연산의 왼쪽에 나타나는 좌 표이고 Table_B 는 우의 표입니다.
왼쪽 외부 조인과 마찬가지로 처음에는 Table_A 와 Table_B 에 내부 조인 을 적용하여 테이블 A와 B에서 일치하는 모든 튜플을 반환합니다.
그런 다음 Table_A에 일치하는 튜플이없는 Table_B의 모든 튜플을 반환합니다. 따라서, 결과로 생성되는 튜플은 왼쪽 테이블의 속성에 대해 NULL 값으로 패딩됩니다.
따라서 오른쪽 외부 조인에서 얻은 결과는 오른쪽 테이블의 모든 튜플과 왼쪽 테이블의 일치하는 튜플 만 유지합니다.
예제를 통해 Right Outer Join을 논의 해 보겠습니다. 위의 표에는 학생 표와 부서 표가 있습니다.
이제 오른쪽 외부 조인 을 학생 테이블과 부서 테이블에 적용합니다.
SELECT * 학생 오른쪽 외부 조인 부서
ON 학생. Student_ID = Department.Student_ID
위 쿼리에서 학생 표는 왼쪽 표이고 부서 표는 오른쪽 표입니다. 오른쪽 외부 조인 작업에 따라 결과에는 부서 테이블의 모든 튜플과 학생 테이블의 일치하는 튜플 만 포함되어야합니다.

전체 외부 조인의 정의
우리가 " Table_A Full Outer Join Table_B "을 가지고 있다고 가정합니다. 따라서 Table_A 는 Full Outer Join 작업의 왼쪽에 표시되는 왼쪽 테이블이며 Table_B 는 오른쪽 테이블입니다.
전체 외부 조인은 왼쪽 외부 조인 과 오른쪽 외부 조인 의 조합 입니다. 처음에는 Table_A 와 Table_B 에 내부 조인 을 적용하여 두 표에서 일치하는 튜플을 검색합니다. 그런 다음 Table_B 에 일치하는 튜플이없는 NULL 로 Table_A의 해당 튜플을 확장합니다. 또한 Table_A 에 일치하는 튜플이없는 NULL 로 Table_B의 튜플을 확장합니다.
따라서 완전 외부 조인은 두 테이블의 일치하는 튜플과 함께 오른쪽 테이블뿐만 아니라 왼쪽에서 모든 튜플을 유지합니다.
FULL outer join에 대해 예를 들어 설명하겠습니다. 우리는 위의 두 테이블, 학생 표와 부서 표를 가지고 있습니다.
이제 전체 외부 조인을 학생 테이블과 부서 테이블에 적용합니다.
SELECT * FROM 학생 전과정 부서
ON 학생. Student_ID = Department.Student_ID
위 쿼리에서 Student Table은 왼쪽 테이블이고 Department Table은 오른쪽 테이블입니다. 전체 외부 조인 (Full Outer Join)에 따르면 결과에는 두 표의 모든 튜플이 포함되어야합니다.

왼쪽, 오른쪽 및 전체 외부 조인 간의 주요 차이점
- Left Outer Join의 결과는 왼쪽 테이블의 모든 튜플을가집니다. 마찬가지로 오른쪽 외부 조인의 결과에는 오른쪽 테이블의 모든 튜플이 있습니다. Full Outer Join의 결과는 왼쪽과 오른쪽 테이블의 모든 튜플을가집니다.
- 왼쪽 외부 조인에서 오른쪽 테이블에 일치하는 튜플이없는 왼쪽 테이블의 튜플은 오른쪽 테이블의 특성에 대해 Null 값으로 확장됩니다. Right Outer Join의 경우와 정반대입니다. Full Outer Join에서는 오른쪽과 왼쪽 테이블에 일치하는 튜플이없는 왼쪽 테이블과 오른쪽 테이블의 튜플이 각각 오른쪽 및 왼쪽 테이블의 특성에 대해 NULL로 확장됩니다.
결론:
쿼리에서 테이블 이름의 위치를 관리하십시오. 쿼리에서 테이블 이름의 위치가 테이블이 왼쪽 테이블 또는 오른쪽 테이블로 간주 될지 여부를 결정합니다.