나 개발자 진짜 되냐?

[ SQL_SELECT / UNION, JOIN을 못쓰는 이유 ] 오프라인/온라인 판매 데이터 통합하기 본문

SQL을 해보았어요!

[ SQL_SELECT / UNION, JOIN을 못쓰는 이유 ] 오프라인/온라인 판매 데이터 통합하기

Snow Rabbit 2023. 1. 6. 13:13

역시.. 4단계는 다른가?

두 테이블을 합치기 위해 JOIN을 사용해서 문제를 풀었는데

도저히 안나와서 결국 인터넷을 보았다.. 흐흐

 

하지만 이문제는 JOIN이 아니라

UNION을 써야 한다고 한다

 

왜일까 하며..

표를 유심히 봤는데

ONLINE과 OFFLINE에서

겹치는 컬럼이 단 한 개도 없었다..

이름만 같았을 뿐....

그래서 이건 JOIN을 쓸 수 없었고

 

UNION에 대해 써야 한다고 한다.

UNION은 집합 연산자로

두 테이블을 연산해서 사용한다.

 

UNION은 두 개 쿼리를 합치면서 중복을 제외하고

UNION ALL은 두 개를 합치면서 중복도 포함한다 그래서  UNION보다 큰 값이 나올 때가 많다.

 

 

추가적으로 INTERSECT는 중복된 레코드만 뱉어내는 친구이고

MINUS는 차집합 느낌으로

첫 쿼리에는 있는데 두 번째에는 없는 친구 + 중복 빼고 이다.

 

앗 집합을 쓸 땐

두 개의 SELECT 개수가 같아야 한다.

그래서 질문에서 OFFLINE에 USER_ID는 NULL로 하라고 했으니

새로운 컬럼을 만들어서 USER_ID에 NULL 을 넣어준다.

NULL AS 컬럼

알아두자!