SQL - 문제 미리보기

문제 1646

medium
다음 상황에서 INNER JOIN을 사용할 때 주의해야 할 점은?
```sql
-- Products 테이블에 CategoryID가 NULL인 상품이 있고
-- Categories 테이블에 없는 CategoryID를 가진 상품이 있는 경우
```
A. 모든 상품이 결과에 포함된다
B. CategoryID가 NULL이거나 Categories에 없는 상품은 결과에서 제외된다
C. NULL 값은 포함되지만 없는 CategoryID는 제외된다
D. 오류가 발생한다

정답: B


INNER JOIN의 엄격한 매칭 조건:
• NULL 값 제외: CategoryID가 NULL인 상품은 매칭 불가
• 존재하지 않는 값 제외: Categories에 없는 CategoryID도 매칭 불가
• 완전 매칭만: 양쪽 테이블에 정확히 일치하는 값만 포함

구체적인 예시:

Products 테이블:
```txt
ProductID | ProductName | CategoryID
1 | Chais | 1 -- 정상 매칭
2 | Chang | NULL -- 제외됨 (NULL)
3 | Syrup | 2 -- 정상 매칭
4 | Bread | 99 -- 제외됨 (존재하지 않음)
```
Categories 테이블:
```txt
CategoryID | CategoryName
1 | Beverages
2 | Condiments
-- CategoryID 99는 없음
```
INNER JOIN 결과:
```sql
SELECT ProductID, ProductName, CategoryName
FROM Products
INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID;

-- 결과: ProductID 1, 3만 포함
ProductID | ProductName | CategoryName
1 | Chais | Beverages
3 | Syrup | Condiments
```

💡 학습 팁

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