IT/SQL

[MySQL] 프로그래머스 - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기

무지개는 환상 2024. 1. 24. 10:04

<USED_GOODS_BOARD> & <USED_GOODS_FILE> 테이블 구조

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 절을 사용할 수 없기 때문이다!

 

출처 : 프로그래머스 - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기