[TIL#8] JOIN, UNION 제대로 짚고 넘어가기

·2025년 2월 26일

데이터분석_TIL

목록 보기
8/81

1. JOIN : 테이블 수평결합

1) JOIN으로 두 개 이상의 테이블을 결합하는 방법

  1. 공통 컬럼 찾기

    • 두 테이블에 공통으로 존재하는 컬럼을 두 테이블 간의 연결 고리로 이용
    • 공통 컬럼이 없으면 조인을 할 수 없음
    • 공통 컬럼은 여러 개도 가능함
    • SELECT * FROM table1 a JOIN table2 b ON a.공통=b.공통
  2. 공통 컬럼 관계 찾기

    • 기준이 되는 공통컬럼과 종속이 되는 공통컬럼을 구분 (PK vs FK)
    • PK(기본키)
      - NULL일 수 없고, 유일한 값을 가짐
      - 모든 데이터를 식별하는 기준이 되는 컬럼
      - 테이블 당 하나의 기본키만 가질 수 있음
    • FK(왜래키)
      - 다른 테이블의 PK와 연결되어 테이블 간 관계를 나타내주는 컬럼
      - PK를 확인하기 위한 연결 컬럼의 역할을 함

      ERD (Entity Relationship Diagram)

      Mapping Cardinality: ERD 내 기호들


  1. 적절한 조인 방식 찾기
  • INNER JOIN : 두 테이블에서 일치하는 값을 가진 행 출력(교집합)

  • LEFT JOIN : 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 반환하고, 일치하는 항목이 없으면 오른쪽 테이블 열에 대해 NULL값이 출력됨

  • RIGHT JOIN : 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 반환하고, 일치하는 항목이 없으면 왼쪽 테이블 열에 대해 NULL값이 출력됨

  • FULL OUTER JOIN: 모든 데이터를 보고 싶을 때 사용하며, 용량 이슈로 자주 사용하진 않음(합집합)
    - MySQL 환경에서는 제공하지 않아서 LEFT JOIN, RIGHT JOIN의 합집합으로 계산

    주로 INNER와 LEFT JOIN을 많이 사용함

2. UNION / UNION ALL : 테이블 수직결합

1) 기본구조

-> 컬럼 순서가 같고, 그 형식이 같아야 함

SELECT 컬럼1, 컬럼2, 컬럼3, ...
FROM 테이블1
UNION (ALL)
SELECT 컬럼1, 컬럼2, 컬럼3, ...
FROM 테이블2

2) UNION vs UNION ALL

  • UNION은 중복되는 데이터를 제거하여 하나로 표기하는 반면,
  • UNION ALL은 중복을 제거하지 않고 모두 표기함

3) 주의점

  • 열의 개수와 순서가 모든 쿼리에서 동일해야 함
  • 두 테이블의 컬럼명이 일치해야 함

0개의 댓글