프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
CONCAT으로 문자열 붙이기, WHERE절 서브쿼리, ORDER BY
JOIN으로 해결할수도 있지만 JOIN보다는 WHERE절 서브쿼리가 빠르다고 생각돼서 WHERE절 서브쿼리문만 작성했습니다.
CONCAT으로 행마다 동적으로 문자열을 붙여서 출력할 수 있습니다.
SELECT CONCAT("/home/grep/src/",BOARD_ID,"/",FILE_ID,FILE_NAME,FILE_EXT) AS FILE_PATH
FROM USED_GOODS_FILE
WHERE BOARD_ID =
(
SELECT BOARD_ID
FROM USED_GOODS_BOARD
ORDER BY views DESC
LIMIT 1
)
ORDER BY FILE_ID DESC
ORDER BY 대신 MAX 활용하기
view수가 가장 높은 행만 필요하므로 order by 정렬은 불필요한 연산들이 포함됩니다. 서브쿼리를 두번 사용하면 불필요한 연산 없이 쿼리문을 작성할 수 있습니다.
SELECT CONCAT("/home/grep/src/",BOARD_ID,"/",FILE_ID,FILE_NAME,FILE_EXT) AS FILE_PATH
FROM USED_GOODS_FILE
WHERE BOARD_ID =
(
SELECT BOARD_ID
FROM USED_GOODS_BOARD
WHERE VIEWS = (SELECT MAX(VIEWS) FROM USED_GOODS_BOARD)
)
ORDER BY FILE_ID DESC
'SQL > 프로그래머스 MySQL with code' 카테고리의 다른 글
프로그래머스 MySQL : [lv.4] 주문량이 많은 아이스크림들 조회하기 (0) | 2023.07.20 |
---|---|
프로그래머스 MySQL : [lv.3] 자동차 평균 대여 기간 구하기 (0) | 2023.07.09 |
프로그래머스 MySQL : [lv.4] 우유와 요거트가 담긴 장바구니 (0) | 2023.07.08 |
프로그래머스 MySQL : [lv.3] 헤비 유저가 소유한 장소 (0) | 2023.07.07 |
프로그래머스 MySQL : [lv.4] 취소되지 않은 진료 예약 조회하기 (0) | 2023.07.06 |