Database ‐ UNION - dnwls16071/Backend_Summary GitHub Wiki

📚 UNION

UNION 연산자 - 2개의 SELECT문의 결과를 하나로 합쳐준다.

  • UNION으로 연결되는 모든 SELECT문은 컬럼 개수가 반드시 동일해야 한다.
  • 각 SELECT문의 같은 위치에 있는 컬럼들은 서로 호환 가능한 데이터 타입이어야 한다.(숫자는 숫자, 문자는 문자)
SELECT
    name,
    email
FROM
    users
UNION
SELECT
    name,
    email
FROM
    retired_users;

📚 UNION ALL

  • UNION : 두 결과 집합을 합친 후 중복된 행을 제거한다.
  • UNION ALL : 두 결과 집합을 합친 후 발생하는 중복 제거 과정 없이 그대로 처리한다.
SELECT
    name,
    email
FROM
    users
UNION ALL
SELECT
    name,
    email
FROM
    retired_users;

📚 UNION 정렬

  • UNION 또는 UNION ALL을 사용해 SELECT문의 결과를 합칠 때, ORDER BY절의 위치가 상당히 중요하다.
SELECT
    name,
    email,
    created_at AS event_date
FROM
    users
UNION ALL
SELECT
    name,
    email,
    retired_date AS event_date
FROM retired_users
ORDER BY
    event_date DESC;  # 전체 쿼리의 맨 끝에 위치!