에러
Operand should contain 1 column(s)
피연산자는 한개의 컬럼만 포함해야한다.
원인
select * from image where id in (select imageId, count(*) likeCount from likes group by imageId order by likeCount desc);
해당 쿼리를 실행하려는데 서브 쿼리가 가져오는 컬럼이 2개여서 에러가 발생했다.
해결
인라인 뷰 사용하기
select imageId
from (
select imageId, count(*) likeCount
from likes
group by imageId
order by likeCount desc
) inline_view_table;
✏️ 인라인 뷰란?
FROM 절 내부에서 사용되는 서브 쿼리를 말한다. 인라인 뷰는 하위 쿼리의 결과를 테이블처럼 사용하여 주 쿼리와 함께 사용한다.
이렇게 인라인 뷰를 사용해서 우리가 만든 쿼리의 결과에서 imageId 만을 가져오도록 설정한다.
그리고 난 다음 실행 시키면 다음의 오류는 생기지 않는다.