LEFT JOIN에서 일치하지 않는 레코드의 처리 방식으로 올바른 것은?
LEFT JOIN에서 일치하지 않는 레코드의 처리 방식으로 올바른 것은?
-- 데이터 상황
-- Customers: CustomerID(1,2,3), CustomerName
-- Orders: CustomerID(2), OrderID(10308)
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
정답: B
⦁ LEFT JOIN에서는 왼쪽 테이블의 모든 레코드가 보존됩니다
데이터 매칭 결과:
⦁ CustomerID 1: Orders에 없음 → CustomerName 표시, OrderID는 NULL
⦁ CustomerID 2: Orders에 있음 → CustomerName과 OrderID(10308) 모두 표시
⦁ CustomerID 3: Orders에 없음 → CustomerName 표시, OrderID는 NULL
LEFT JOIN의 핵심 특징:
⦁ 왼쪽 테이블 레코드는 절대 제외되지 않음
⦁ 매칭되지 않는 경우 오른쪽 테이블 열에는 NULL 값 표시
⦁ 0이나 기본값이 아닌 NULL을 사용하여 "값이 없음"을 명확히 표현
INNER JOIN과의 차이:
⦁ INNER JOIN: CustomerID 2인 고객만 결과에 포함
⦁ LEFT JOIN: 모든 고객이 결과에 포함
💡 학습 팁
이 문제를 포함한 MySQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.