실행 결과
‘어라? 이거 뭔가 이상한데? 왜 총 예약 건과 예약 완료 건의 숫자가 같지? 그리고 예약 취소 건이 0건일 리 없잖아?’
최 과장은 분석 SELECT 문에 심각한 오류가 있다는 사실을 발견했습니다. 확인을 위해 ERD를 다시 살펴봅니다. 그리고 곧 예약 테이블(reservation)은 주문 정보(order_info)를 갖지 않을 수 있다는 점을 발견합니다. 즉, reservation 테이블에 reserv_no가 있다 해도 order_info에는 reserv_no가 없을 수 있다는 사실입니다.
‘아하, 온라인 예약이 취소되면 레스토랑에 방문하지 않을 테니까 당연히 주문 정보도 없겠구나. 그렇다면 예약 취소된 건까지 출력하려면 외부 조인(outer join)을 사용해야겠어. 음… 데이터가 부족한 쪽은 주문 정보(order_info)지. 그렇다면 주문 정보 테이블 쪽에 외부 조인 (+)를 넣어 주면 조건이 맞지 않는 예약 정보(취소 건)는 주문 정보가 null로 조인이 될 거야.’