SQL
[프로그래머스] [MySQL] LV.3 헤비 유저가 소유한 장소 (SUBQUERY)
석원님
2024. 1. 4. 13:45
이번 문제는 아예 처음보는 새로운 PLACES 테이블.
PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블이다.
이 서비스에서 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부르는데 이 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성하라는 문제.
문제를 보자마자 '아 서브쿼리인가' 하는 감이 왔다.
그래서 '공간을 둘 이상 등록한 헤비유저가 등록한 공간의 정보' 를 먼저 작성하였다.
서브쿼리
SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(HOST_ID) >= 2)
이제 저 쿼리를 WHERE절의 서브쿼리로 사용하여 쿼리를 마저 작성하였다.
SELECT *
FROM PLACES
WHERE HOST_ID IN (SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(HOST_ID) >= 2)
ORDER BY ID
WHERE절 SUB QUERY
참고로 WHERE절에서 서브쿼리를 사용할 때
'=' 이라는 기호를 쓸 때는 서브쿼리의 결과가 하나일때만 사용이 가능하다.
만약 서브쿼리의 결과물이 여러개일 때에는 IN이나 OR을 사용하면 된다!
뽀로롱 정답~