❓ USED_GOODS_BOARD
와 USED_GOODS_REPLY
테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요.
SELECT
TITLE,
BOARD.BOARD_ID,
REPLY_ID,
REPLY.WRITER_ID,
REPLY.CONTENTS, DATE_FORMAT(REPLY.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE
FROM USED_GOODS_REPLY AS REPLY
LEFT JOIN USED_GOODS_BOARD AS BOARD
ON REPLY.BOARD_ID = BOARD.BOARD_ID
WHERE DATE_FORMAT(BOARD.CREATED_DATE, '%Y-%m') = '2022-10'
ORDER BY REPLY.CREATED_DATE ASC, TITLE ASC
ON 절은 조인 시 두 개의 테이블을 연결하는 조건을 지정하는 데 사용됩니다. ON 절은 조인 조건을 명시적으로 지정하는 데 사용되며, 조인할 때 테이블 간의 관계를 정의합니다. ON 절은 JOIN 절에서 사용되는 조인 종류에 따라 다르게 동작합니다. ON 절은 조인 조건에 따라 행을 결합하는 데 사용됩니다.
SELECT *
FROM table1
JOIN table2 ON table1.id = table2.id;
WHERE 절은 조건을 지정하여 특정 행을 필터링하는 데 사용됩니다. WHERE 절은 쿼리 결과에 영향을 미치는 조건을 지정하는 데 사용됩니다. WHERE 절은 FROM 절 다음에 나오며, 조건이 참인 행만 반환됩니다.
SELECT *
FROM table1
JOIN table2 ON table1.id = table2.id
WHERE table1.name = 'John';
LEFT JOIN은 왼쪽 테이블을 기준으로 오른쪽 테이블을 조인하는 방식입니다. 왼쪽 테이블의 모든 행을 포함하면서 오른쪽 테이블과 일치하는 행이 있는 경우 해당 행을 반환합니다. 일치하는 행이 없는 경우에는 NULL 값을 가진 오른쪽 테이블의 열을 반환합니다.
SELECT *
FROM table1
LEFT JOIN table2 ON table1.id = table2.id;
👉 위의 쿼리에서 table1을 기준으로 table2를 LEFT JOIN하여 두 테이블의 id 컬럼이 일치하는 경우에만 조인합니다. LEFT JOIN을 사용하면 table1의 모든 행을 유지하면서 table2와 조인할 수 있습니다. 조인된 결과에서 table2와 일치하는 행이 없는 경우에는 NULL 값을 가진 table2의 열을 반환합니다.