DB

[DB] Union

개발 공주 2023. 6. 2. 20:14
728x90

두 개 이상의 SQL 쿼리문을 합치는 방법

부득이하게 여러개에 쿼리문을 사용하여 하나에 데이터로 출력해야되는 경우가 존재한다.

이럴 때 사용하는 방법이 바로 UNION 연산자이다.

 

👉 근데, 그러려면 한 가지 조건이 있어요! 노란색과 파란색 박스의 필드명이 같아야 한다. 🙂

ex) 

 SELECT ID, NAME FROM TABLE1 ;

 SELECT ID, NAME FROM TABLE2 ;

 

 SELECT ID, NAME FROM TABLE1 ;

 UNION ALL

 SELECT ID, NAME FROM TABLE2 ;

(
	select '7월' as month, c.title, c2.week, count(*) as cnt from checkins c2
	inner join courses c on c2.course_id = c.course_id
	inner join orders o on o.user_id = c2.user_id
	where o.created_at < '2020-08-01'
	group by c2.course_id, c2.week
  order by c2.course_id, c2.week
)
union all
(
	select '8월' as month, c.title, c2.week, count(*) as cnt from checkins c2
	inner join courses c on c2.course_id = c.course_id
	inner join orders o on o.user_id = c2.user_id
	where o.created_at > '2020-08-01'
	group by c2.course_id, c2.week
  order by c2.course_id, c2.week
)

👉 union을 사용하면 내부 정렬이 먹지 않아요. 이 때 유용한 방법이 있다. 바로, SubQuery(서브쿼리)를 사용하는 것이다.

'DB' 카테고리의 다른 글

[DB] WITH문  (0) 2023.06.02
[DB] 서브 쿼리  (0) 2023.06.02
[DB] Join(Left (outer) Join, Inner Join)  (0) 2023.06.02
[DB] SQL문 기본 문법 - select  (0) 2023.06.01
[DB] mongoDB 시작하기  (0) 2023.05.18