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
'데이터베이스' 카테고리의 다른 글
[SQL] 5. 윈도우 함수(Window Functions) (0) | 2025.05.19 |
---|---|
[SQL] 4. 뷰(View), 인덱스(Index), 시퀀스(Sequence) (0) | 2025.05.19 |
[SQL] 3.집합 연산(SET OPERATIONS) (0) | 2025.05.19 |
댓글