SQL UNION, JOIN (1/2)

DA_LEESUNHO·2025년 10월 30일

Learning Base

목록 보기
3/15

FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY

SQL 동작 순서를 명시
알아두고 항시 습관화하기

이번 글은 여러 테이블을 결합하고자 할 때, 사용하는 기능을 소개한다.
   - 실무에서 하나의 테이블만을 참고하여 데이터를 추출하는 경우는 거의 없음


'UNION' : 수직 결합 / 'JOIN' : 수평 결합 임을 떠올리며 학습해보자.

SQL 테이블 수직 결합 (UNION)

여러 테이블을 수직 으로 결합 할 때 사용하는 기능이다.
기본적인 구조는 다음과 같다.

---- JOIN 기본 구조
select 컬럼1, 컬럼2, 컬럼3.. 
from 테이블명1
union [ALL]
select 컬럼1, 컬럼2, 컬럼3..
from 테이블명2 

위 구조를 보게 되면 UNION 구문이 보이는데,
필요에 따라, [ALL] 혹은 공백으로 나뉘게 된다.

구분UNIONUNION ALL
차이점두 테이블의 중복된 행 제외중복된 행 포함

언제 UNION을, 아니면 UNION ALL 을 쓰는 것일까?
위 말한 바와 같이 '필요에 따라' 로 결정된다.

예를 들어, 월 별로 고객의 구매테이블(고객 이름 / ID / 상품ID) 을 운용할 때
해당 년도 특정 고객의 누적 구매수 등을 추출하고자 할때는 UNION ALL

해당 년도에 한 번이라도 구매한 고객의 정보(이름 / ID) 를 추출하고자 할 때는 UNION

그렇다면 UNION 을 사용하기 위한 필수 조건 (& 주의사항) 은 무엇일까?

  • 두 테이블의 컬럼 순서와 데이터 형식이 같아야 한다.
    각 컬럼의 명이 다르더라도, 가장 상단 SELECT 문의 컬럼으로 통일 된다.

SQL 테이블 수평 결합 (JOIN)

여러 테이블을 수평 으로 결합 할 때 사용하는 기능이다.
기본적인 구조는 다음과 같다.

---- JOIN 기본 구문
select 컬럼1, 컬럼2.
from 테이블 a
join 				-- 필요에 따라 사용하는 JOIN의 종류가 다양하다. 다음 주에 학습할 예정 ~
select 컬럼1, 컬럼2..
from 테이블 b
on a.공통컬럼=b.공통컬럼
---- JOIN 기본 구문
------ 공통 컬럼이 2개 이상인 경우
select 컬럼1, 컬럼2
from 테이블 as a
join 				-- 필요에 따라 사용하는 JOIN의 종류가 다양하다. 다음 주에 학습할 예정 ~
select 컬럼1, 컬럼2..
from 테이블 as b
on a.공통컬럼=b.공통컬럼 and a.공통컬럼2=b.공통컬럼2 

JOIN 의 종류는 다음 주에 학습 할 예정이다.
그렇다면 필수 조건 (주의사항) 은 무엇일까?

① JOIN 하고자 하는 테이블들의 공통 컬럼을 찾는다.
공통 컬럼의 관계(PK, FK) 를 찾는다.
출력하고자 하는 결과 값에 따른 적절한 JOIN 방식을 찾는다.

각 항목에 대해 세부적으로 살펴보자.
① JOIN 하고자 하는 테이블들의 **공통 컬럼**을 찾는다.

  • 공통 컬럼 : 두 테이블에서 공통적으로 존재하는 컬럼
  • JOIN 하고자 하는 테이블들의 연결 고리
    : 공통 컬럼의 이름 값은 달라도 무방
    : 하나의 컬럼 혹은 한 개 이상의 컬럼이 공통일 수 있음

②~③ 의 세부 내용과 함께, JOIN의 유형은 다음 주 월요일날 학습 후 진행할 예정이다.
학습 전 배운 내용의 이해와 예제를 통해 완벽하게 습득하자.

profile
성장과 회고를 기록하는 일기장

0개의 댓글