자료구조 및 알고리즘/프로그래머스

프로그래머스 - 과일로 만든 아이스크림 고르기 (SQL)

viamemine 2024. 4. 17. 11:23
728x90
반응형

 


 

💬 내가 작성한 SQL 코드

SELECT A.FLAVOR
FROM FIRST_HALF AS A
INNER JOIN ICECREAM_INFO AS B # LEFT JOIN
ON A.FLAVOR = B.FLAVOR
WHERE A.TOTAL_ORDER > 3000
AND B.INGREDIENT_TYPE = 'fruit_based'
ORDER BY A.TOTAL_ORDER DESC;

# 1. 아이스크림 맛 조회
# 2. 총 주문량이 3,000보다 높고
# 3. 아이스크림의 주 성분이 과일인 맛
# 4. 총주문량 큰 순서대로(=내림차순)

 


 

해당 문제는 어렵지 않은 문제였다. 

주석으로 작성한 4가지 조건을 만족하는 코드를 작성하면 되는 문제였다.

 

문제를 해결하면서, 해당 문제는 INNER JOIN / LEFT JOIN 두 가지 방법으로 해결가능함을 확인하였다.

무슨 차이가 있는걸까 !

 

 

 

LEFT JOIN 합집합, INNER JOIN 교집합이다.

 

 

두 테이블에서 JOIN을 위한 기준 열이 서로 값을 가지고 있는 경우 조회에서 누락되는 행은 존재하지 않는다.

그렇다면 LEFT JOIN과 INNER JOIN은 같은 조회 결과를 보인다.

 

이때, INNER JOIN이 상대적으로 성능이 좋다고 한다.

교집합만 고려하다보니 빠를 것 같긴 하다.

 

결과가 같다면 LEFT JOIN 대신 INNER JOIN을 사용하자 ! 

 

 

 

 

728x90