Algorithm/SQL

[SQL] SELECT > 조건에 부합하는 중고거래 댓글 조회하기 (Lv.1)

메린지 2023. 3. 28. 20:42

문제

USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요.


[풀이]

갑자기 SQL 공부가 하고 싶어서 1일 1SQL을 시작하기로 했다 (뜬금) 왠진 모르겠음,, 그냥,, 그냥임,, 암튼 그냥임,,^_^

역시 MySQL이랑 Oracle은 문법이 많이 다르다ㅠㅠ

 

일단 MySQL은 as로 표현해줘야할거같고, 날짜표현시 DATE_FORMAT(데이터, 형식), ASC/DESC 써야되는거같고

Oracle은 as 안써도 표현이 되고 TO_CHAR(데이터, 형식)으로 표현해줘야하고, ASC말고 ASCENDING 써야한다는데 여긴 또된다 ㅋㅋㅋㅋ

 

일단 시작은 재밌당 매일 매일 해봐야지

# MYSQL 기준
SELECT table2.TITLE, table2.BOARD_ID, table1.REPLY_ID, table1.WRITER_ID, table1.CONTENTS, DATE_FORMAT(table1.CREATED_DATE, '%Y-%m-%d')
FROM USED_GOODS_REPLY as table1 JOIN USED_GOODS_BOARD as table2
ON table1.BOARD_ID=table2.BOARD_ID
WHERE table2.CREATED_DATE BETWEEN '2022-10-01' and '2022-10-31'
ORDER BY table1.CREATED_DATE ASC, table2.TITLE ASC

# ORACLE 기준
SELECT table2.TITLE, table2.BOARD_ID, table1.REPLY_ID, table1.WRITER_ID, table1.CONTENTS, TO_CHAR(table1.CREATED_DATE, 'YYYY-MM-DD') created_date
FROM USED_GOODS_REPLY table1 JOIN USED_GOODS_BOARD table2
ON table1.BOARD_ID=table2.BOARD_ID
WHERE TO_CHAR(table2.CREATED_DATE, 'YYYY-MM-DD') BETWEEN '2022-10-01' and '2022-10-31'
ORDER BY table1.CREATED_DATE ASC, table2.TITLE