[SQL/코드카타] 프로그래머스 64번 - 헤비유저가 소유한 장소

프로그래머스 [Lv4] : 헤비 유저가 소유한 장소

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


🚨 내가 시도한 쿼리

SELECT ID, NAME, HOST_ID
FROM PLACES
WHERE HOST_ID = (SELECT HOST_ID
                 FROM PLACES
                 GROUP BY HOST_ID
                 HAVING COUNT(HOST_ID) >=2
                 )
ORDER BY ID ASC;

작성해서 실행하였더니,,,

🚨 연산자 오류 발생 🚨

자주 발생하는 연산자 오류라고 한다!

 

그러면 어떻게 해야하는 건데?

아하!! 그렇구만! 

그러면 WHERE 절에 서브쿼리를 사용해서 여러 값을 불러와야 할 때는 "IN"을 사용해야 겠네?!!!

그럼 이번 문제를 다시 정리해보자.

SELECT ID, NAME, HOST_ID
FROM PLACES
WHERE HOST_ID IN (SELECT HOST_ID               # 서브쿼리문
                 FROM PLACES
                 GROUP BY HOST_ID              # HOST_ID 별로 묶어서
                 HAVING COUNT(HOST_ID) >=2     # HOST_ID 수가 2 이상인 것
                 )
ORDER BY ID ASC;

연산자 오류를 주의하자!! 서브쿼리문에 대해서 복습하자!!

끝.