
1. ๋ฌธ์ ์ค๋ช
๋ค์์ ์ค๊ณ ๊ฑฐ๋ ๊ฒ์ํ ์ ๋ณด๋ฅผ ๋ด์ USED_GOODS_BOARD ํ ์ด๋ธ๊ณผ ์ค๊ณ ๊ฑฐ๋ ๊ฒ์ํ ์ฒจ๋ถํ์ผ ์ ๋ณด๋ฅผ ๋ด์ USED_GOODS_REPLY ํ ์ด๋ธ์ ๋๋ค. USED_GOODS_BOARD ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS์ ๊ฒ์๊ธ ID, ์์ฑ์ ID, ๊ฒ์๊ธ ์ ๋ชฉ, ๊ฒ์๊ธ ๋ด์ฉ, ๊ฐ๊ฒฉ, ์์ฑ์ผ, ๊ฑฐ๋์ํ, ์กฐํ์๋ฅผ ์๋ฏธํฉ๋๋ค.

USED_GOODS_REPLY ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ REPLY_ID, BOARD_ID, WRITER_ID, CONTENTS, CREATED_DATE๋ ๊ฐ๊ฐ ๋๊ธ ID, ๊ฒ์๊ธ ID, ์์ฑ์ ID, ๋๊ธ ๋ด์ฉ, ์์ฑ์ผ์ ์๋ฏธํฉ๋๋ค.



2. ๋ฌธ์ ํ์ด
์ฒซ๋ฒ์งธ ์๋ ๐ ๐ปโโ๏ธ - ํ๋ฆผ
์ถ๋ ฅ์ ์ ์์ ์ผ๋ก ๋๋, ์ ์คํจํ๋ ์ง ๋ชจ๋ฅด๊ฒ ์..
SELECT A.TITLE, A.BOARD_ID, B.REPLY_ID, B.WRITER_ID, B.CONTENTS,
DATE_FORMAT(B.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE
FROM USED_GOODS_BOARD A JOIN USED_GOODS_REPLY B
ON A.WRITER_ID = B.WRITER_ID
WHERE A.CREATED_DATE LIKE '2022-10-%'
ORDER BY B.CREATED_DATE, A.TITLE;
์ถ๋ ฅ ๊ฒฐ๊ณผ ํ๋ฉด์ ๋ณด๋ฉด 2022๋ 11์๋ถํฐ 12์ ๋ฐ์ดํฐ๋ ๊ฐ์ด ์ถ๋ ฅ์ด ๋๋ ๊ฒ์ผ๋ก ๋ด์ WHERE ์ ์กฐ๊ฑด์ ์ด์์ด ์๋ ๊ฒ์ผ๋ก ๋ณด์. ์ผ๋จ CREATED_DATE๋ DATE ํ์ ์ด ํ๋์ ์๊ฐ ๋ถ๋ถ์ด ํฌํจ ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด ๋น๊ตํ๋ LIKE๋ก ์กฐํํ ์ ์๋ ๊ฒ์ผ๋ก ์ถ์ ๋จ.

์์์ WHERE ์กฐ๊ฑด์ ์ BETRWEEN์ ๋ก ๋ฐ๊ฟ์คฌ๋๋ฐ๋ ๊ฐ์ ํ์์ด ์ผ์ด๋จ.
WHERE A.CREATED_DATE BETWEEN '2022-10-01' AND '2022-10-31'
๋๋ฒ์งธ ์๋ ๐ ๐ปโโ๏ธ - ํ๋ฆผ
โ ๋๊ธ ์์ฑ์ผ๋ 2022๋ 10์๋ก ํด ์ค์ผ ๋๋?
๊ทธ๋์ WHERE ์ ์ ๊ฒ์๊ธ ์์ฑ์ผ ๋ฐ ๋๊ธ ์์ฑ์ผ๋ 2022๋ 10์๋ ์กฐ๊ฑด์ ์ค.
์คํ ๊ฒฐ๊ณผ์์๋ 2022๋ 10์์ ์์ฑ๋ ๊ฒ์๊ธ๊ณผ ๋๊ธ๋ง ํํฐ๋ง์ด ์ ๋๋ก ๋ ๊ฑธ ํ์ธํ์์ผ๋ ํ๋ฆฐ ์ฝ๋๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์
SELECT A.TITLE, A.BOARD_ID, B.REPLY_ID, B.WRITER_ID, B.CONTENTS,
DATE_FORMAT(B.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE
FROM USED_GOODS_BOARD A
JOIN USED_GOODS_REPLY B ON A.WRITER_ID = B.WRITER_ID
WHERE A.CREATED_DATE BETWEEN '2022-10-01' AND '2022-10-31'AND
B.CREATED_DATE BETWEEN '2022-10-01' AND '2022-10-31'
ORDER BY B.CREATED_DATE, A.TITLE;
์ธ๋ฒ์งธ ์๋ ๐โโ๏ธ - ์ ๋ต๐ฅณ
โ ๋ ํ ์ด๋ธ์ ์กฐ์ธํ๋ ์กฐ๊ฑด์ด ์๋ชป๋จ.
BOARD_ID๋ก ์กฐ์ธํด์ผ ํ๋๋ฐ ๋๋ WRITER_ID๋ก ์กฐ์ธํ๊ธฐ ๋๋ฌธ์ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์์. WRITER_ID๋ ํ ์ฌ๋์ด ์ฌ๋ฌ ๊ฐ์ ๊ฒ์๊ธ์ ์ฐ๊ธฐ ๋๋ฌธ์ ์ผ๋ ๋ค ๊ด๊ณ์ด๊ณ ๊ฒ์๊ธ ํ๋์ ๋ฌ๋ฆฐ ๋๊ธ ๊ด๊ณ๋ฅผ ์กฐ์ธํ๊ธฐ ์ํด์๋ ๊ฒ์๊ธ ID๋ก ์กฐ์ธํด ์ฃผ์ด์ผ ํจ. ์์ธํ ๋งํ์๋ฉด, ๊ฐ ๋๊ธ์ ํน์ ๊ฒ์๊ธ์ ์ํ๋ฏ๋ก ๋๊ธ์ด ์ฐธ์กฐํ๋ ๊ฒ์๊ธ์ BOARD_ID๋ก ์ฐ๊ฒฐํด ์ฃผ๋ ๊ฒ์ด๋ค.
โ WHERE ์ ์์๋ DATE ํฌ๋งคํ ์ ํด ์ค์ผ ํจ.
์๋? ๊ธฐ๋ณธ์ ์ผ๋ก DATE๋ ์๊ฐ๊น์ง ํฌํจ๋๋ ํํ์ด๊ธฐ ๋๋ฌธ์ 'Y-m-d h:m:s' ํํ๋ก ํ ์ด๋ธ์ ๋ค์ด๊ฐ ์๋ค. ๋จผ์ , DATE์์ ์๊ฐ๊ณผ ์ผ์๋ฅผ ์๋ผ ์ฃผ๊ณ , ๋ฌ๊น์ง๋ง ๋์ค๊ฒ ํฌ๋งคํ ํ ๋ค์, 2022-10์์ ํด๋นํ๋ ์กฐ๊ฑด์ ์กฐํํด์ผ ํ๋ค.
SELECT
A.TITLE,
A.BOARD_ID,
B.REPLY_ID,
B.WRITER_ID,
B.CONTENTS,
DATE_FORMAT(B.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE
FROM
USED_GOODS_BOARD A
JOIN
USED_GOODS_REPLY B
ON
A.BOARD_ID = B.BOARD_ID
WHERE
DATE_FORMAT(A.CREATED_DATE, '%Y-%m') = '2022-10'
ORDER BY
B.CREATED_DATE ASC,
A.TITLE ASC;
'Algorithm > SQLํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ

1. ๋ฌธ์ ์ค๋ช
๋ค์์ ์ค๊ณ ๊ฑฐ๋ ๊ฒ์ํ ์ ๋ณด๋ฅผ ๋ด์ USED_GOODS_BOARD ํ ์ด๋ธ๊ณผ ์ค๊ณ ๊ฑฐ๋ ๊ฒ์ํ ์ฒจ๋ถํ์ผ ์ ๋ณด๋ฅผ ๋ด์ USED_GOODS_REPLY ํ ์ด๋ธ์ ๋๋ค. USED_GOODS_BOARD ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS์ ๊ฒ์๊ธ ID, ์์ฑ์ ID, ๊ฒ์๊ธ ์ ๋ชฉ, ๊ฒ์๊ธ ๋ด์ฉ, ๊ฐ๊ฒฉ, ์์ฑ์ผ, ๊ฑฐ๋์ํ, ์กฐํ์๋ฅผ ์๋ฏธํฉ๋๋ค.

USED_GOODS_REPLY ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ REPLY_ID, BOARD_ID, WRITER_ID, CONTENTS, CREATED_DATE๋ ๊ฐ๊ฐ ๋๊ธ ID, ๊ฒ์๊ธ ID, ์์ฑ์ ID, ๋๊ธ ๋ด์ฉ, ์์ฑ์ผ์ ์๋ฏธํฉ๋๋ค.



2. ๋ฌธ์ ํ์ด
์ฒซ๋ฒ์งธ ์๋ ๐ ๐ปโโ๏ธ - ํ๋ฆผ
์ถ๋ ฅ์ ์ ์์ ์ผ๋ก ๋๋, ์ ์คํจํ๋ ์ง ๋ชจ๋ฅด๊ฒ ์..
SELECT A.TITLE, A.BOARD_ID, B.REPLY_ID, B.WRITER_ID, B.CONTENTS, DATE_FORMAT(B.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE FROM USED_GOODS_BOARD A JOIN USED_GOODS_REPLY B ON A.WRITER_ID = B.WRITER_ID WHERE A.CREATED_DATE LIKE '2022-10-%' ORDER BY B.CREATED_DATE, A.TITLE;
์ถ๋ ฅ ๊ฒฐ๊ณผ ํ๋ฉด์ ๋ณด๋ฉด 2022๋ 11์๋ถํฐ 12์ ๋ฐ์ดํฐ๋ ๊ฐ์ด ์ถ๋ ฅ์ด ๋๋ ๊ฒ์ผ๋ก ๋ด์ WHERE ์ ์กฐ๊ฑด์ ์ด์์ด ์๋ ๊ฒ์ผ๋ก ๋ณด์. ์ผ๋จ CREATED_DATE๋ DATE ํ์ ์ด ํ๋์ ์๊ฐ ๋ถ๋ถ์ด ํฌํจ ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด ๋น๊ตํ๋ LIKE๋ก ์กฐํํ ์ ์๋ ๊ฒ์ผ๋ก ์ถ์ ๋จ.

์์์ WHERE ์กฐ๊ฑด์ ์ BETRWEEN์ ๋ก ๋ฐ๊ฟ์คฌ๋๋ฐ๋ ๊ฐ์ ํ์์ด ์ผ์ด๋จ.
WHERE A.CREATED_DATE BETWEEN '2022-10-01' AND '2022-10-31'
๋๋ฒ์งธ ์๋ ๐ ๐ปโโ๏ธ - ํ๋ฆผ
โ ๋๊ธ ์์ฑ์ผ๋ 2022๋ 10์๋ก ํด ์ค์ผ ๋๋?
๊ทธ๋์ WHERE ์ ์ ๊ฒ์๊ธ ์์ฑ์ผ ๋ฐ ๋๊ธ ์์ฑ์ผ๋ 2022๋ 10์๋ ์กฐ๊ฑด์ ์ค.
์คํ ๊ฒฐ๊ณผ์์๋ 2022๋ 10์์ ์์ฑ๋ ๊ฒ์๊ธ๊ณผ ๋๊ธ๋ง ํํฐ๋ง์ด ์ ๋๋ก ๋ ๊ฑธ ํ์ธํ์์ผ๋ ํ๋ฆฐ ์ฝ๋๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์
SELECT A.TITLE, A.BOARD_ID, B.REPLY_ID, B.WRITER_ID, B.CONTENTS, DATE_FORMAT(B.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE FROM USED_GOODS_BOARD A JOIN USED_GOODS_REPLY B ON A.WRITER_ID = B.WRITER_ID WHERE A.CREATED_DATE BETWEEN '2022-10-01' AND '2022-10-31'AND B.CREATED_DATE BETWEEN '2022-10-01' AND '2022-10-31' ORDER BY B.CREATED_DATE, A.TITLE;
์ธ๋ฒ์งธ ์๋ ๐โโ๏ธ - ์ ๋ต๐ฅณ
โ ๋ ํ ์ด๋ธ์ ์กฐ์ธํ๋ ์กฐ๊ฑด์ด ์๋ชป๋จ.
BOARD_ID๋ก ์กฐ์ธํด์ผ ํ๋๋ฐ ๋๋ WRITER_ID๋ก ์กฐ์ธํ๊ธฐ ๋๋ฌธ์ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์์. WRITER_ID๋ ํ ์ฌ๋์ด ์ฌ๋ฌ ๊ฐ์ ๊ฒ์๊ธ์ ์ฐ๊ธฐ ๋๋ฌธ์ ์ผ๋ ๋ค ๊ด๊ณ์ด๊ณ ๊ฒ์๊ธ ํ๋์ ๋ฌ๋ฆฐ ๋๊ธ ๊ด๊ณ๋ฅผ ์กฐ์ธํ๊ธฐ ์ํด์๋ ๊ฒ์๊ธ ID๋ก ์กฐ์ธํด ์ฃผ์ด์ผ ํจ. ์์ธํ ๋งํ์๋ฉด, ๊ฐ ๋๊ธ์ ํน์ ๊ฒ์๊ธ์ ์ํ๋ฏ๋ก ๋๊ธ์ด ์ฐธ์กฐํ๋ ๊ฒ์๊ธ์ BOARD_ID๋ก ์ฐ๊ฒฐํด ์ฃผ๋ ๊ฒ์ด๋ค.
โ WHERE ์ ์์๋ DATE ํฌ๋งคํ ์ ํด ์ค์ผ ํจ.
์๋? ๊ธฐ๋ณธ์ ์ผ๋ก DATE๋ ์๊ฐ๊น์ง ํฌํจ๋๋ ํํ์ด๊ธฐ ๋๋ฌธ์ 'Y-m-d h:m:s' ํํ๋ก ํ ์ด๋ธ์ ๋ค์ด๊ฐ ์๋ค. ๋จผ์ , DATE์์ ์๊ฐ๊ณผ ์ผ์๋ฅผ ์๋ผ ์ฃผ๊ณ , ๋ฌ๊น์ง๋ง ๋์ค๊ฒ ํฌ๋งคํ ํ ๋ค์, 2022-10์์ ํด๋นํ๋ ์กฐ๊ฑด์ ์กฐํํด์ผ ํ๋ค.
SELECT A.TITLE, A.BOARD_ID, B.REPLY_ID, B.WRITER_ID, B.CONTENTS, DATE_FORMAT(B.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE FROM USED_GOODS_BOARD A JOIN USED_GOODS_REPLY B ON A.BOARD_ID = B.BOARD_ID WHERE DATE_FORMAT(A.CREATED_DATE, '%Y-%m') = '2022-10' ORDER BY B.CREATED_DATE ASC, A.TITLE ASC;