INNER JOIN에서 일치하지 않는 레코드의 처리 방식으로 올바른 것은?

과목: MySQL

문제 번호: 3132

medium
INNER JOIN에서 일치하지 않는 레코드의 처리 방식으로 올바른 것은?
-- 데이터 상황
-- Orders: OrderID(10308, 10309), CustomerID(2, 99)
-- Customers: CustomerID(1, 2, 3), CustomerName

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
A. CustomerID 99인 주문도 결과에 포함되고 CustomerName은 NULL로 표시된다
B. CustomerID 99인 주문은 결과에서 제외되고, CustomerID 2인 주문만 포함된다
C. 모든 주문이 결과에 포함되고 일치하지 않는 경우 기본값으로 표시된다
D. 오류가 발생하여 쿼리가 실행되지 않는다

정답: B



⦁ INNER JOIN에서는 일치하지 않는 레코드가 결과에서 제외됩니다

데이터 매칭 분석:
⦁ OrderID 10308, CustomerID 2: Customers 테이블에 CustomerID 2 존재 ✓ (포함됨)
⦁ OrderID 10309, CustomerID 99: Customers 테이블에 CustomerID 99 없음 ❌ (제외됨)

INNER JOIN의 특징:
⦁ 양쪽 테이블에 모두 존재하는 값만 결과에 포함
⦁ NULL 값 처리나 기본값 설정 없음
⦁ 엄격한 매칭 조건: 일치하지 않으면 완전히 제외

다른 JOIN과의 차이:
⦁ LEFT JOIN: 왼쪽 테이블 레코드 보존, 오른쪽에 NULL 표시
⦁ INNER JOIN: 매칭되지 않으면 완전 제외

💡 학습 팁

이 문제를 포함한 MySQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.