본문 바로가기

코딩테스트 연습/프로그래머스(mySQL)

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

반응형

조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기

테이블 : USED_GOODS_BOARD

 

[프로그래머스] 테이블 USED_GOODS_BOARD

테이블 USED_GOODS_BOARD 중고거래 게시판 정보 Column name Type Nullable Description Example BOARD_ID VARCHAR(5) False 게시글 ID 'B0007' WRITER_ID VARCHAR(50) False 작성자 ID 's2s2123' TITLE VARCHAR(100) False 게시글 제목 '커피글라

komishs.tistory.com

테이블 : USED_GOODS_FILE

 

[프로그래머스] 테이블 USED_GOODS_FILE

테이블 USED_GOODS_FILE 중고거래 게시판 첨부파일 정보 Column name Type Nullable Description Example FILE_ID VARCHAR(10) False 파일 ID IMG_000001 FILE_EXT VARCHAR(5) False 파일 확장자 .jpg FILE_NAME VARCHAR(256) False 파일 이름 ph

komishs.tistory.com

 

문제

예시

(예시는 문제와 다르게 FILE_ID기준 오름차순 정렬되어 있지만, 정답은 FILE_ID 기준 내림차순 정렬해야 함)

반응형

 

최종구현

  1. 조건 : VIEWS가 최댓값인 BOARD_ID모든 첨부파일 경로 조회
    • 하나의 게시물(BOARD_ID)에 여러 첨부파일(FILE_ID)이 존재할 수 있음
    • 1) VIEWS가 최댓값인 BOARD_ID(1개) 조회
      • USED_GOODS_BOARD를 VIEWS 기준 내림차순 정렬
      • 맨 앞 1개 데이터의 BOARD_ID 조회 --> x.BOARD_ID
    • 2) 1)에서 찾은 BOARD_ID의 첨부파일에 대하여 경로 출력
      • USED_GOODS_FILE의 BOARD_ID가 1)에서 찾은 x.BOARD_ID와 일치하는 데이터 조회
  2. 정렬 : FILE_ID(내림차순)
  3. 출력 : FILE_PATH
    • "/home/grep/src/[BOARD_ID]/[FILE_ID][FILE_NAME][FILE_EXT]" 형태로 출력
    • CONCAT("", "", ...)으로 연결하여 출력
    • 컬럼명은 FILE_PATH로 설정

 

제출 코드

SELECT CONCAT('/home/grep/src/',file.BOARD_ID,'/',file.FILE_ID,file.FILE_NAME,file.FILE_EXT) 
	as FILE_PATH
FROM USED_GOODS_FILE as file, 
    (SELECT BOARD_ID FROM USED_GOODS_BOARD ORDER BY VIEWS desc LIMIT 1) as x
WHERE file.BOARD_ID=x.BOARD_ID
ORDER BY file.FILE_ID desc
;
반응형