IT/SQL
[MySQL] 프로그래머스 - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
무지개는 환상
2024. 1. 24. 10:04
<USED_GOODS_BOARD> & <USED_GOODS_FILE> 테이블 구조
<문제>
<문제 풀이>
SELECT concat('/home/grep/src/', F.BOARD_ID, '/', FILE_ID,FILE_NAME, FILE_EXT) AS FILST_PATH
FROM USED_GOODS_FILE AS F
LEFT JOIN USED_GOODS_BOARD AS B
ON F.BOARD_ID = B.BOARD_ID
WHERE VIEWS = (SELECT MAX(VIEWS)
FROM USED_GOODS_BOARD)
ORDER BY FILE_ID DESC;
지난번에 풀었던 문제들의 짬뽕이었다. (concat 함수 + 외부조인 + where절에 서브쿼리 사용)
조금 다른 점은 WHERE 절내 서브 쿼리에서 사용된 집계 함수가 HAVING 절이 아닌 SELECT 절에서 바로 사용되었다는 점이다.
MAX 함수를 사용한 이유는
한 개의 값만 리턴 되어야 했고, 서브쿼리 내에서는 LIMIT 절을 사용할 수 없기 때문이다!