Link
Tables
Question
경제카테고리 에 속하는 도서들의 도서 ID(BOOK_ID), 저자명(AUTHOR_NAME), 출판일(PUBLISHED_DATE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요.
DataFlow
•
저자명_id 사용 join
Answer
select
b.book_id, a.author_name, b.published_date
from book b
left join author a
on b.author_id = a.author_id
where b.category = '경제'
order by b.published_date asc;
SQL
복사
Intention
LEFT JOIN인데 의도가 맞는가?
현재 LEFT JOIN을 사용하면 author 테이블에 매칭되는 행이 없는 책도 결과에 포함됩니다. 즉, author_name이 NULL인 행이 섞일 수 있습니다.•
만약 "저자 정보가 있는 경제 도서만" 뽑으려는 의도라면 → INNER JOIN이 맞습니다.
•
저자 미등록 도서도 포함해야 한다면 → LEFT JOIN이 맞고, author_name이 NULL인 경우를 downstream에서 처리해야 한다는 점을 인지해야 합니다.
published_date의 NULL 처리ORDER BY published_date ASC 시, MySQL은 NULL을 가장 앞에 정렬합니다. 날짜 미입력 데이터가 있다면 의도치 않게 결과 상단에 NULL이 몰릴 수 있습니다. 필요 시 아래처럼 처리하세요.

