본문 바로가기
데이터베이스

[SQL] 1. JOIN

by 우공80 2025. 5. 19.
728x90

1. 조인의 기본 개념

여러 테이블에 흩어진 관련 데이터를 한 번에 조회할 때 사용합니다.

SELECT … 
FROM 테이블A A 
	[INNER | LEFT | RIGHT | FULL] JOIN 테이블B B 
		ON A.공통컬럼 = B.공통컬럼;

1-1. INNER JOIN

  • 두 테이블에서 매칭되는 행만 조회
SELECT E.EMPLOYEE_ID, E.FIRST_NAME, D.DEPARTMENT_NAME 
FROM EMPLOYEES E 
	INNER JOIN DEPARTMENTS D 
	 	ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;

1-2. LEFT OUTER JOIN

  • 왼쪽 테이블의 모든 행 + 매칭되는 오른쪽 행
  • 오른쪽에 매칭이 없으면 NULL
SELECT E.EMPLOYEE_ID, E.FIRST_NAME, D.DEPARTMENT_NAME 
FROM EMPLOYEES E 
	LEFT JOIN DEPARTMENTS D 
    	ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;

1-3. RIGHT OUTER JOIN

  • 오른쪽 테이블의 모든 행 + 매칭되는 왼쪽 행
  • 왼쪽에 매칭이 없으면 NULL
 
SELECT E.EMPLOYEE_ID, E.FIRST_NAME, D.DEPARTMENT_NAME \
FROM EMPLOYEES E 
	RIGHT JOIN DEPARTMENTS D 
    ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;

1-4. FULL OUTER JOIN

  • 왼쪽, 오른쪽 모두 매칭 여부 관계없이 전부 조회
  • 어느 쪽 매칭 없으면 NULL
SELECT E.EMPLOYEE_ID, E.FIRST_NAME, D.DEPARTMENT_NAME 
FROM EMPLOYEES E 
	FULL JOIN DEPARTMENTS D 
    	ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;
 

2. 테이블별 별칭 활용

  • 가독성을 위해 긴 테이블명 대신 짧은 별칭 사용
  • 위 예제들에서 EMPLOYEES를 E, DEPARTMENTS를 D 로 지정

3. 복수 조인

  • 3개 이상의 테이블도 순차적으로 조인 가능
SELECT E.EMPLOYEE_ID, E.FIRST_NAME, M.FIRST_NAME AS MANAGER_NAME, D.DEPARTMENT_NAME 
FROM EMPLOYEES E 
	LEFT JOIN EMPLOYEES M 
    ON E.MANAGER_ID = M.EMPLOYEE_ID 
    LEFT JOIN DEPARTMENTS D 
    ON E.DEPARTMENT_ID = D.DEPARTMENT_ID;
 

주요 테이블의 코드값에 해당하는 코드명을 붙여줄 때 유용하게 쓰임

728x90

댓글