티스토리 뷰

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

문제

문제 이해가 까다로웠다! 

- 조회수가 가장 높은 중고거래 게시물에 대해 첨부파일 경로를 조회 => 조회수가 가장 높은 중고거래 게시물 1개만 구하면 된다! 서브쿼리를 이용! 

- 첨부파일 경로는 FILE_ID 기준으로 내림차순 => ORDER BY

- 파일 경로 출력 -> /home/grep/src/게시글ID/파일ID파일이름파일확장자 형태로! => CONCAT이용

 

풀이 : WHERE절에 사용된 서브쿼리

SELECT CONCAT('/home/grep/src/',A.BOARD_ID,'/', FILE_ID,FILE_NAME,FILE_EXT) AS FILE_PATH 
FROM USED_GOODS_BOARD AS A JOIN USED_GOODS_FILE AS B ON A.BOARD_ID = B.BOARD_ID 
WHERE (VIEWS) = (SELECT MAX(VIEWS) FROM USED_GOODS_BOARD )
ORDER BY B.FILE_ID DESC;

- 처음에 HAVING을 써야할지 헷갈림... but, 조회수가 가장 높은 게시물들만 걸러주면 되므로 단일행 서브쿼리를 이용해 VIEWS를 기준으로 가장 큰 값 가지는 튜플들만 가져오기

- 집계함수는 WHERE절에 올 수 없고, SELECT절, HAVING절, ORDER BY 절에 사용할 수 있음!

- HAVING은 지정된 특성을 가지는 집단을 선별하는 것!  WHERE는 지정된 조건에 해당하는 튜플을 선별! 

- SELECT 문 실행순서 : F - W - G - H - O - S

 

*서브쿼리 정리하기!!!!!