๋ฌธ์
๐ MySQL๋ก ํ์ด
๐ ๋ฌธ์ ๋งํฌ :
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ๋ฌธ์ ์ค๋ช :
USED_GOODS_BOARD์ USED_GOODS_USER ํ ์ด๋ธ์์ ์ค๊ณ ๊ฑฐ๋ ๊ฒ์๋ฌผ์ 3๊ฑด ์ด์ ๋ฑ๋กํ ์ฌ์ฉ์์ ์ฌ์ฉ์ ID, ๋๋ค์, ์ ์ฒด์ฃผ์, ์ ํ๋ฒํธ๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋, ์ ์ฒด ์ฃผ์๋ ์, ๋๋ก๋ช ์ฃผ์, ์์ธ ์ฃผ์๊ฐ ํจ๊ป ์ถ๋ ฅ๋๋๋ก ํด์ฃผ์๊ณ , ์ ํ๋ฒํธ์ ๊ฒฝ์ฐ xxx-xxxx-xxxx ๊ฐ์ ํํ๋ก ํ์ดํ ๋ฌธ์์ด(-)์ ์ฝ์ ํ์ฌ ์ถ๋ ฅํด์ฃผ์ธ์. ๊ฒฐ๊ณผ๋ ํ์ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
๐ ํ ์ด๋ธ :
๋ค์์ ์ค๊ณ ๊ฑฐ๋ ๊ฒ์ํ ์ ๋ณด๋ฅผ ๋ด์ USED_GOODS_BOARD ํ ์ด๋ธ๊ณผ ์ค๊ณ ๊ฑฐ๋ ๊ฒ์ํ ์ฒจ๋ถํ์ผ ์ ๋ณด๋ฅผ ๋ด์ USED_GOODS_FILE ํ ์ด๋ธ์ ๋๋ค. USED_GOODS_BOARD ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS๋ ๊ฒ์๊ธ ID, ์์ฑ์ ID, ๊ฒ์๊ธ ์ ๋ชฉ, ๊ฒ์๊ธ ๋ด์ฉ, ๊ฐ๊ฒฉ, ์์ฑ์ผ, ๊ฑฐ๋์ํ, ์กฐํ์๋ฅผ ์๋ฏธํฉ๋๋ค.
BOARD_ID | VARCHAR(5) | FALSE |
WRITER_ID | VARCHAR(50) | FALSE |
TITLE | VARCHAR(100) | FALSE |
CONTENTS | VARCHAR(1000) | FALSE |
PRICE | NUMBER | FALSE |
CREATED_DATE | DATE | FALSE |
STATUS | VARCHAR(10) | FALSE |
VIEWS | NUMBER | FALSE |
USED_GOODS_USER ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ USER_ID, NICKNAME, CITY, STREET_ADDRESS1, STREET_ADDRESS2, TLNO๋ ๊ฐ๊ฐ ํ์ ID, ๋๋ค์, ์, ๋๋ก๋ช ์ฃผ์, ์์ธ ์ฃผ์, ์ ํ๋ฒํธ๋ฅผ ์๋ฏธํฉ๋๋ค.
USER_ID | VARCHAR(50) | FALSE |
NICKANME | VARCHAR(100) | FALSE |
CITY | VARCHAR(100) | FALSE |
STREET_ADDRESS1 | VARCHAR(100) | FALSE |
STREET_ADDRESS2 | VARCHAR(100) | TRUE |
TLNO | VARCHAR(20) | FALSE |
ํ์ด
์ถ์ธก)
์ด๋ฒ ๋ฌธ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ ์ ์๋ ํจ์๋ฅผ ์์์ผ ํ ์ ์์๋ ๋ฌธ์
์ฟผ๋ฆฌ)
SELECT
USER_ID,
NICKNAME,
CONCAT(CITY, ' ' , STREET_ADDRESS1, ' ', STREET_ADDRESS2) AS '์ ์ฒด์ฃผ์',
CONCAT(LEFT(TLNO,3), '-', MID(TLNO, 4, 4), '-', RIGHT(TLNO,4)) AS '์ ํ๋ฒํธ'
FROM USED_GOODS_USER
WHERE USER_ID IN (SELECT WRITER_ID
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING COUNT(WRITER_ID) >= 3)
ORDER BY USER_ID DESC
๋ฆฌ๋ทฐ)
CONCATํจ์๋ ์ฌ๋ฌ ๋ฌธ์์ด ๋๋ ์ปฌ๋ผ ๊ฐ์ ํฉ์ณ์ ์กฐํํ ์ ์๋๋ก ํ๋ ํจ์์ด๋ค.
๊ธฐ๋ณธ ํ์์
CONCAT(๋ฌธ์์ด1|์ปฌ๋ผ1 , ๋ฌธ์์ด2|์ปฌ๋ผ2 [, ๋ฌธ์์ด3|์ปฌ๋ผ3 ....]) AS ์นผ๋ผ๋ช
๊ทธ๋ฌ๋๊น ๋ฌธ์์ด๊ณผ ๋ฌธ์์ด, ์ปฌ๋ผ๊ณผ ์ปฌ๋ผ ๋ฟ๋ง ์๋๋ผ
CONCAT ('์ ๋๋ค์์ ', NICKNAME, '์ ๋๋ค') AS '๋๋ค์'
์์ผ๋ก ๋ฌธ์์ด๊ณผ ์ปฌ๋ผ์ ์์ด ์ถ๋ ฅ๋ ๊ฐ๋ฅํ๋ค
