반응형
※ 문제
※ 코드
-- 코드를 입력하세요
SELECT DISTINCT F.FLAVOR
FROM (SELECT * FROM FIRST_HALF WHERE TOTAL_ORDER > 3000 ORDER BY TOTAL_ORDER DESC) F, ICECREAM_INFO I
WHERE F.FLAVOR = I.FLAVOR AND I.INGREDIENT_TYPE = 'fruit_based';
-- 코드를 입력하세요
SELECT DISTINCT *
FROM (SELECT F.FLAVOR
FROM FIRST_HALF F INNER JOIN ICECREAM_INFO I ON F.FLAVOR = I.FLAVOR
WHERE F.TOTAL_ORDER > 3000 AND I.INGREDIENT_TYPE = 'fruit_based'
ORDER BY F.TOTAL_ORDER);
※ 풀이
위와 같이 JOIN 연산 없이 풀 수도 있고, 아래와 같이 JOIN 연산을 활용하여 풀 수도 있습니다.
위 코드의 F.FLAVOR = I.FLAVOR가 결국 JOIN 연산의 ON 조건과 같기 때문에 연산 자체는 동일합니다.
그러므로 편한 방식으로 활용해 주시면 될 것 같습니다.
JOIN 연산을 쓰는 게 더 깔끔하니 좋긴 한데 좀 복잡해지니까 그냥 FROM 절 안의 이중 SELECT 부분에서 미리 연산을 다 마친 FLAVOR만 뽑는 게 가장 편리합니다.
반응형
'DBMS' 카테고리의 다른 글
[프로그래머스 SQL] Lv. 1 특정 형질을 가지는 대장균 찾기 (1) | 2025.03.01 |
---|---|
[프로그래머스 SQL] Lv. 1 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2025.02.28 |
[프로그래머스 SQL] Lv. 1 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2025.02.28 |
[프로그래머스 SQL] Lv. 1 특정 옵션이 포함된 자동차 리스트 구하기 (0) | 2025.02.28 |
[프로그래머스 SQL] Lv. 1 잡은 물고기 중 가장 큰 물고기의 길이 구하기 (0) | 2025.02.28 |