๐Ÿ–ฅ๏ธ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/SQL

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [SQL] ์กฐํšŒ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ์ค‘๊ณ ๊ฑฐ๋ž˜ ๊ฒŒ์‹œํŒ์˜ ์ฒจ๋ถ€ํŒŒ์ผ ์กฐํšŒํ•˜๊ธฐ

rtw0202 2026. 2. 17. 14:38

1. ๋ฌธ์ œ ์„ค๋ช…

๋‹ค์Œ์€ ์ค‘๊ณ ๊ฑฐ๋ž˜ ๊ฒŒ์‹œํŒ ์ •๋ณด๋ฅผ ๋‹ด์€ USED_GOODS_BOARD ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. USED_GOODS_BOARD ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ BOARD_IDWRITER_IDTITLECONTENTSPRICECREATED_DATESTATUSVIEWS์€ ๊ฒŒ์‹œ๊ธ€ ID, ์ž‘์„ฑ์ž ID, ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ, ๊ฒŒ์‹œ๊ธ€ ๋‚ด์šฉ, ๊ฐ€๊ฒฉ, ์ž‘์„ฑ์ผ, ๊ฑฐ๋ž˜์ƒํƒœ, ์กฐํšŒ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

USED_GOODS_FILE ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ FILE_IDFILE_EXTFILE_NAMEBOARD_ID๋Š” ๊ฐ๊ฐ ํŒŒ์ผ ID, ํŒŒ์ผ ํ™•์žฅ์ž, ํŒŒ์ผ ์ด๋ฆ„, ๊ฒŒ์‹œ๊ธ€ ID๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

USED_GOODS_BOARD์™€ USED_GOODS_FILE ํ…Œ์ด๋ธ”์—์„œ ์กฐํšŒ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์ค‘๊ณ ๊ฑฐ๋ž˜ ๊ฒŒ์‹œ๋ฌผ์— ๋Œ€ํ•œ ์ฒจ๋ถ€ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ฒจ๋ถ€ํŒŒ์ผ ๊ฒฝ๋กœ๋Š” FILE ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”. ๊ธฐ๋ณธ์ ์ธ ํŒŒ์ผ๊ฒฝ๋กœ๋Š” /home/grep/src/ ์ด๋ฉฐ, ๊ฒŒ์‹œ๊ธ€ ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๊ตฌ๋ถ„๋˜๊ณ , ํŒŒ์ผ์ด๋ฆ„์€ ํŒŒ์ผ ID, ํŒŒ์ผ ์ด๋ฆ„, ํŒŒ์ผ ํ™•์žฅ์ž๋กœ ๊ตฌ์„ฑ๋˜๋„๋ก ์ถœ๋ ฅํ•ด์ฃผ์„ธ์š”. ์กฐํšŒ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๊ฒŒ์‹œ๋ฌผ์€ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

2. ์ถœ๋ ฅ ์˜ˆ์‹œ

 

3. ๋ฌธ์ œ ๋‹ต์•ˆ

SELECT
    CONCAT('/home/grep/src/', 
           b.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.views = (SELECT
                    MAX(b.views)
                 FROM used_goods_board b
                 )
ORDER BY f.file_id DESC;