처음 작성한 코드
select id, name, host_id
from (select *
from places
group by host_id
having count(*) >= 2) as a
order by id
오류 발생 이유는 group by host_id로 인해 having절을 만족하는 host_id에 대한 행 총 두개만 출력이 된다.
원하는 쿼리는 조건을 만족하는 host_id가 가진 모든 공간 정보가 나와야 하기에 where절에 서브쿼리를 사용해야 한다.
나의 풀이)
select id, name, host_id
from places
where host_id in (select host_id
from places
group by host_id
having count(*) >= 2)
order by id
where 절에 서브쿼리를 사용하여 조건에 맞는 host_id 에 대해 전체 테이블에서 가져오도록 하였다.
^ㅁ^
'TIL > SQL' 카테고리의 다른 글
TIL (7/31) <날짜 자료형 총 정리(My SQL)> (0) | 2024.07.31 |
---|---|
프로그래머스| 우유와 요거트가 담긴 장바구니(My SQL) (0) | 2024.07.31 |
SQL <자료형, 외부에서 데이터 불러오기> (2) | 2024.07.23 |
SQL<DDL, DML, 확장자> (1) | 2024.07.23 |
TIL (7/19) <날짜 차이 구하기 datediff()> (0) | 2024.07.19 |