프로그래머스 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 문제 풀이 중 발생한 오류에 대해 정리해보고자 한다.
쿼리의 IN 조건문에서 문제 발생:
ON F.BOARD_ID = B.BOARD_ID IN (SELECT B.BOARD_ID, MAX(VIEWS) FROM USED_GOODS_BOARD ORDER BY VIEWS DESC)
IN 연산자는 하나의 컬럼이나 값만 비교할 수 있지만,
서브쿼리가 B.BOARD_ID와 MAX(VIEWS) 두 개의 컬럼을 반환하려 하기 때문에 이 오류가 발생한다.
서브쿼리에서 하나의 컬럼만 반환하도록 수정해야 한다.
WHERE절에서 서브쿼리를 사용할 시 조건을 건 컬럼을 똑같이 SELECT절에 넣어야 한다.
WHERE (컬럼1, 컬럼2) IN (SELECT(컬럼1, 컬럼2)
FROM 테이블명)