사용 언어 - MYSQL
프로그래머스 LV 4) 헤비 유저가 소유한 장소
정답
자체 JOIN (정답 맞춘 여부 O)
내 정답 : PLACES 테이블을 조건에 부합하는 PLACES 테이블로 JOIN한다.
SELECT A.ID, A.NAME, A.HOST_ID
FROM PLACES AS A
JOIN (
SELECT *
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(*) >= 2
) AS B
ON A.HOST_ID = B.HOST_ID
ORDER BY A.ID;
다른 분의 정답
1. IN을 이용해서 HOST_ID가 여러개인 경우에만 출력하는 방법
SELECT * FROM PLACES
WHERE HOST_ID IN(
SELECT HOST_ID FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(ID) >= 2
)
ORDER BY ID ASC;
2. HOST_ID가 여러개인 경우에만 1을 입력, WHERE EXISTS를 이용해서 1인 경우에만 출력하는 방법
SELECT * FROM PLACES P1
WHERE EXISTS (
SELECT 1 FROM PLACES P2
WHERE P1.HOST_ID = P2.HOST_ID
GROUP BY HOST_ID
HAVING COUNT(ID) >= 2
)
ORDER BY ID ASC;
레퍼런스
- 정답 깃허브
'Stay Hungry Stay Foolish > SQL' 카테고리의 다른 글
[MYSQL] 보호소에서 중성화환 동물 (0) | 2023.10.04 |
---|---|
[MYSQL] 우유와 요거트가 담긴 장바구니 (1) | 2023.10.04 |
[MYSQL] 5월 식품들의 총매출 구하기 (1) | 2023.10.04 |
[MYSQL] 상품을 구매한 회원 비율 구하기 (0) | 2023.10.04 |
[MYSQL] 주문량이 많은 아이스크림들 조회하기 (0) | 2023.10.04 |
댓글