문제
다음 SQL에서 OUTER JOIN의 결과 해석으로 가장 적절한 것은?
SQL-- 테이블 구조 -- ORDERS: ORDER_ID, CUSTOMER_ID, ORDER_DATE -- PAYMENTS: PAYMENT_ID, ORDER_ID, AMOUNT SELECT O.ORDER_ID, P.PAYMENT_ID, P.AMOUNT FROM ORDERS O LEFT JOIN PAYMENTS P ON O.ORDER_ID = P.ORDER_ID WHERE O.ORDER_DATE >= '2024-01-01';
① 결제 정보가 없는 주문도 결과에 포함됨 ② 결제 정보가 있는 주문만 결과에 포함됨 ③ 주문 정보가 없는 결제도 결과에 포함됨 ④ INNER JOIN과 동일한 결과를 반환함
정답
1번
해설
LEFT JOIN을 사용했으므로 왼쪽 테이블(ORDERS)의 모든 행이 결과에 포함됩니다. 따라서 결제 정보(PAYMENTS)가 없는 주문이라도 2024년 이후 주문이면 결과에 포함되며, 이 경우 P.PAYMENT_ID와 P.AMOUNT는 NULL로 표시됩니다. ②는 INNER JOIN의 특징이고, ③은 RIGHT JOIN의 특징입니다.