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
'자료구조 및 알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 강원도에 위치한 생산공장 목록 출력하기 (SQL) (0) | 2024.04.17 |
---|---|
프로그래머스 - 인기있는 아이스크림 (SQL) (0) | 2024.04.17 |
프로그래머스 - 흉부외과 또는 일반외과 의사 목록 출력하기 (SQL) (0) | 2024.04.17 |
프로그래머스 - 3월에 태어난 여성 회원 목록 출력하기 (SQL) (0) | 2024.04.17 |
프로그래머스 - 조건에 부합하는 중고거래 댓글 조회하기 (SQL) (0) | 2024.04.17 |