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을 사용하면 된다!

 

 

뽀로롱 정답~