울음참고 개발공부
article thumbnail
728x90

 

https://school.programmers.co.kr/learn/courses/30/lessons/131537

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 


 

 

[ 정답 - UNION

 

<sql />
SELECT DATE_FORMAT(SALES_DATE,"%Y-%m-%d") SALES_DATE , PRODUCT_ID , USER_ID , SALES_AMOUNT FROM ONLINE_SALE WHERE SALES_DATE LIKE '2022-03%' UNION SELECT DATE_FORMAT(SALES_DATE,"%Y-%m-%d") SALES_DATE , PRODUCT_ID , NULL AS USER_ID , SALES_AMOUNT FROM OFFLINE_SALE WHERE SALES_DATE LIKE '2022-03%' ORDER BY SALES_DATE , PRODUCT_ID , USER_ID

 

 

 

UNION / UNION ALL

UNION - 중복제외 조회
UNION ALL - 중복 포함 조회 

 

 


 

 

[ 오답처리  - LEFT OUTER JOIN ] 

<sql />
SELECT DATE_FORMAT(ONS.SALES_DATE, '%Y-%m-%d') AS SALES_DATE , ONS.PRODUCT_ID , ONS.USER_ID , ONS.SALES_AMOUNT FROM ONLINE_SALE ONS LEFT OUTER JOIN OFFLINE_SALE OFFS ON ONS.PRODUCT_ID = OFFS.PRODUCT_ID WHERE ONS.SALES_DATE LIKE '2022-03%' GROUP BY PRODUCT_ID ORDER BY ONS.SALES_DATE ,ONS.PRODUCT_ID ,ONS.USER_ID

 

 

 

 


 

 

# UNION 을 사용하는 경우와 JOIN 을 사용하는 경우 

 

둘 다 조회되는 결과는 같다. 

하지만 LEFT JOIN 을 사용하면 오답처리가 된다. 

 

해당 문제가 테이블 '통합' 하는것에 개념을 두었기에 오답처리가 되는 것일까..?! 

 

 

 

 

 

 

 

 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!