๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์
FILE_PATH ์ถ๋ ฅ ์์๋ฅผ ๋ณด๊ณ '/home/grep/src/' + F.BOARD_ID + '/' + F.FILE_ID + F.FILE_NAME + F.FILE_EXT
์ด๋ ๊ฒ ๋ฌธ์์ด์ด ๊ฒฐํฉ๋ ๊ตฌ์กฐ๋ผ๋ ๊ฑธ ์ ์ ์์๋ค. CONCAT์ผ๋ก ํด๋น ๋ฌธ์์ด์ ๋ชจ๋ ๊ฒฐํฉ ํด ์ค๋ค. ์ฒ์์๋ ํท๊ฐ๋ ค์ + ์ฐ์ฐ์๋ก ํ๋๋ฐ ,๋ก ๊ฒฐํฉ์ ํด ์ค์ผ ํ๋ค.
๋ ํ ์ด๋ธ ์กฐ์ธํ ๋๋ BOARD_ID ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์กฐ์ธ ํด ์ค๋ค.
WHERE ์ ์์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด๋ค. ๋จผ์ USED_GOODS_BOARD๋ฅผ ์กฐํ์ ์ปฌ๋ผ(VIEW) ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ํด ์ฃผ๊ณ ๊ทธ ์ค ๊ฐ์ฅ ๋์ ๊ฒ๋ง ๊ฐ์ ธ์์ผ ํ๋๊น LIMIT1 ์ ๊ฑธ์ด์ค๋ค.
๋ง์ง๋ง์ผ๋ก FILE_ID๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ฉด ๋~! ์ฝ๋ค
โญ 3. ์ ๋ต์ฝ๋
์ฒซ๋ฒ์งธ๋ ๋ ํ ์ด๋ธ์ BOARD_ID๋ก ์กฐ์ธ์ ํด ์ฃผ์๋ค.
SELECT CONCAT('/home/grep/src/', F.BOARD_ID, '/', F.FILE_ID, F.FILE_NAME, F.FILE_EXT) AS FILE_PATH
FROM USED_GOODS_BOARD B JOIN USED_GOODS_FILE F
ON B.BOARD_ID = F.BOARD_ID
WHERE B.BOARD_ID = (SELECT BOARD_ID
FROM USED_GOODS_BOARD
ORDER BY VIEWS DESC
LIMIT 1)
ORDER BY F.FILE_ID DESC;
USED_GOODS_BOARD์ USED_GOODS_FILE ํ ์ด๋ธ์ด ๋ชจ๋ BOARD_ID๋ผ๋ ๋์ผํ ์ปฌ๋ผ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์, ๋ ํ ์ด๋ธ์ ํด๋น ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ๊ฒฐํฉํ ๋ ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์๋ค. USING์ ์ฌ์ฉํ์ง ์๊ณ ON์ ์ฌ์ฉํด๋ ๋์ง๋ง USING์ด ๋ ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ด๋ค.
SELECT CONCAT('/home/grep/src/', F.BOARD_ID, '/', F.FILE_ID, F.FILE_NAME, F.FILE_EXT) AS FILE_PATH
FROM USED_GOODS_BOARD B JOIN USED_GOODS_FILE F
USING (BOARD_ID)
WHERE B.BOARD_ID = (SELECT BOARD_ID
FROM USED_GOODS_BOARD
ORDER BY VIEWS DESC
LIMIT 1)
ORDER BY F.FILE_ID DESC;