๋ฌธ์
- ํ๋ก๊ทธ๋๋จธ์ค SQL ๋ฌธ์
์กฐํ์๊ฐ ๊ฐ์ฅ ๋ง์ ์ค๊ณ ๊ฑฐ๋ ๊ฒ์ํ์ ์ฒจ๋ถํ์ผ ์กฐํํ๊ธฐ
/๋ ๋ฒจ 3
- ๋ฌธ์ ๋ด์ฉ : ํ๋จ ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ [[๋งํฌ]]
๋ด๊ฐ ์์ฑํ Query
SELECT CONCAT('/home/grep/src/', A.BOARD_ID, '/', B.FILE_ID, B.FILE_NAME, B.FILE_EXT ) AS FILE_PATH FROM USED_GOODS_BOARD A JOIN USED_GOODS_FILE B ON A.BOARD_ID = B.BOARD_ID WHERE A.VIEWS = (SELECT MAX(VIEWS) FROM USED_GOODS_BOARD GROUP BY BOARD_ID ORDER BY 1 DESC LIMIT 1) ORDER BY B.FILE_ID DESC;
JOIN
์ ํตํด USED_GOODS_BOARD
๊ฒ์ํ ํ
์ด๋ธ๊ณผ USED_GOODS_FILE
ํ
์ด๋ธ์ ํฉ์ณ์ค๋ค.
(๊ฒ์๊ธ ์ ๋ณด์ ์ฒจ๋ถํ์ผ ์ ๋ณด๋ฅผ ๊ตฌํด์ผ ํ๋ฏ๋ก)
์ค๊ณ ๊ฑฐ๋ ๊ฒ์๊ธ ์ค ์กฐํ์('VIEWS') ๊ฐ ๋ง์ ๊ฒ์๊ธ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํด์ค์ผ ํ๋ฏ๋ก, WHERE
์ ์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ํตํด VIEW๊ฐ ์ต๋๊ฐ์ ๊ฐ์ง ๋์ ๋ฐ์ดํฐ๋ง์ ํํฐ๋งํ๋ค.
CONCAT
ํจ์๋ฅผ ์ด์ฉํ์ฌ FILE_PATH
์ ๋ค์ด๊ฐ ์ฒจ๋ถํ์ผ ์ด๋๊ฒฝ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด์ค๋ค.
ORDER BY
๋ฅผ ํตํด 'FILE_ID' ๊ธฐ์ค ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ค.
์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ VIEWS ๊ฐ์ด ์ต๋์ผ ๋์ ์ฒจ๋ถํ์ผ ๊ด๋ จ ์ ๋ณด๋ค์ ์ถ๋ ฅํ๋ ๋ฌธ์ ์์.
๐๐ CONCAT
์ฌ์ฉ๋ฒ, ํน์ ๊ฐ์ด ์ต๋/์ต์๊ฐ์ ๊ฐ์ง ๋ ๊ทธ ๋ฐ์ดํฐ์ ๋ค๋ฅธ ์ปฌ๋ผ ๊ฐ์ ์ถ์ถํ๋ ๋ฐฉ๋ฒ ๋ค์ ํ ๋ฒ ๋ณต์ต!