[MySQL] UNION / UNION ALL

한결·2023년 10월 23일
0

CS

목록 보기
31/34

UNION

  1. 중복 제거: UNION은 두 개 이상의 SELECT 쿼리의 결과를 하나로 합칠 때 중복된 레코드를 자동으로 제거합니다.

  2. 정렬 필요: UNION을 사용할 때는 기본적으로 내부적으로 결과가 정렬됩니다. 이는 중복된 레코드를 제거하기 위한 처리 때문입니다.

  3. 사용 예

SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;

UNION ALL

  1. 중복 포함: UNION ALL은 SELECT 쿼리의 결과를 그대로 합칩니다. 중복된 레코드도 그대로 결과에 포함됩니다.
  2. 정렬 없음: UNION ALL은 내부적으로 결과를 정렬하지 않으므로 UNION에 비해 일반적으로 더 빠릅니다.
  3. 사용 예:
SELECT column1, column2 FROM table1
UNION ALL
SELECT column1, column2 FROM table2;

주의사항

UNION 또는 UNION ALL을 사용하여 여러 쿼리의 결과를 합칠 때, 각 SELECT 쿼리의 컬럼 수와 데이터 타입이 동일해야 합니다.
또한 결과를 합칠 때의 컬럼 이름은 첫 번째 SELECT 쿼리의 컬럼 이름을 사용합니다.

언제 사용할까?

UNION: 중복된 결과를 원하지 않을 때 사용합니다.
UNION ALL: 중복된 결과를 포함하거나, 중복 제거에 대한 오버헤드를 피하고 싶을 때 사용합니다.

0개의 댓글