본문 바로가기

개발 문법/SQL

[Oracle] LEFT OUTER JOIN 문법과 예제

반응형
목차

1. LEFT OUTER JOIN 이란?
    1-1. 기본 개념
    1-2. 문법 구조
    1-3. 기본 예제
    1-4. 요약 정리

 

1. LEFT OUTER JOIN 이란?

실무에서는 데이터가 항상 완벽하게 맞아떨어지지 않습니다.

그래서 INNER JOIN보다 OUTER JOIN을 사용하는 경우가 많죠.

특히 LEFT OUTER JOIN은 기준이 되는 테이블의 데이터를 모두 살리면서, 필요한 정보만 추가로 보여주는 방식으로 동작하기 때문에 업무 데이터의 불일치 문제를 해결하는 데 매우 유용합니다.

 

1-1. 기본 개념

LEFT OUTER JOIN은 왼쪽 테이블의 모든 행을 기준으로 해서 오른쪽 테이블에서 관련 데이터를 가져오는 방식입니다.

 

왼쪽 테이블은 기준이 되는 테이블이고 오른쪽 테이블은 참조하는 테이블을 의미합니다.

정리해보면 다음과 같습니다.

 

구분 왼쪽 테이블(기준 테이블) 오른쪽 테이블(참조 테이블)
역할 JOIN 결과에 모든 행을 무조건 포함시키는 테이블 왼쪽 테이블과 매칭되는 데이터만 포함
NULL 처리 테이블의 원래 데이터 값이 NULL인 경우 NULL 출력 왼쪽 테이블과 매칭된 데이터가 없는 경우 NULL 출력
주로 담고 있는 데이터 주 데이터, 기준 정보 보조 데이터, 선택정 정보
결과 영향 결과의 행 수를 결정하는 기준 매칭되는 데이터가 있을 때만 값이 
실무 활용 예시 고객 테이블, 학생 테이블 등 주문 내역, 점수, 상세 정보 등

 

1-2. 문법 구조

 

SELECT A.컬럼1, A.컬럼2, B.컬럼1, B.컬럼2
FROM 테이블A A
LEFT OUTER JOIN 테이블B B
ON A.키 = B.키

 

 LEFT OUTER JOIN의 기본 구조입니다.

 

SELECT 결과로 가져올 컬럼 지정
FROM 테이블명 A 기준이 되는 왼쪽 테이블
* A : 알리어스(Alias)
LEFT OUTER JOIN 테이블명 B 참조할 오른족 테이블
ON A.키 = B.키 JOIN 조건
어떤 기준으로 투 테이블을 연결할지 시정

 

📌 * 알리어스(Alias) 란?

테이블이나 컬럼에 임시 이름을 붙이는 것으로, 여러 테이블이 있을 때에는 어떤 테이블의 컬럼인지를 구분하기 위해 사용한다.

SQL 결과에는 영향을 주지 않고, 쿼리 안에서만 사용하는 이름이다.

 

1-3. 기본 예제

1️⃣ 테이블 준비

 

🗂️ 왼쪽 테이블 (테이블명 : 학생)

학번 이름
101 학생1
102 학생2
103 학생3

 

🗂️ 오른쪽 테이블 (테이블명 : 점수)

학번  
101 90
103 85

 

2️⃣ LEFT OUTER JOIN 쿼리

 

SELECT A.학번, A.이름, B.점수
FROM 학생 A
LEFT OUTER JOIN 점수 B
ON A.학번 = B.학번;

 

3️⃣ 쿼리 실행 결과

 

학번 이름 점수
101 학생1 90
102 학생2 NULL
103 학생3 85

 

1-4. 요약 정리

LEFT OUTER JOIN은 왼쪽 테이블을 기준으로 모든 행을 유지하면서, 오른쪽 테이블의 데이터를 매칭하는  SQL 문법입니다.

오른쪽 테이블에 매칭되는 값이 없으면 NULL로 표시되기 떄문에 집계나 계산을 할 때에는 NULL 처리에 주의해야 합니다.

실무에서 자주 사용되는 JOIN 방식이며, 특히 LEFT OUTER JOIN을 사용할 때는 JOIN 조건을 정확하게 작성하는 것이 핵심입니다.

 

 

반응형