SQL - 문제 미리보기
문제 1652
medium
LEFT JOIN과 INNER JOIN의 결과 차이를 올바르게 설명한 것은?
```sql
-- 쿼리 A: LEFT JOIN
SELECT c.CustomerName, o.OrderID
FROM Customers c
LEFT JOIN Orders o ON c.CustomerID = o.CustomerID;
-- 쿼리 B: INNER JOIN
SELECT c.CustomerName, o.OrderID
FROM Customers c
INNER JOIN Orders o ON c.CustomerID = o.CustomerID;
```
```sql
-- 쿼리 A: LEFT JOIN
SELECT c.CustomerName, o.OrderID
FROM Customers c
LEFT JOIN Orders o ON c.CustomerID = o.CustomerID;
-- 쿼리 B: INNER JOIN
SELECT c.CustomerName, o.OrderID
FROM Customers c
INNER JOIN Orders o ON c.CustomerID = o.CustomerID;
```
정답: C
LEFT JOIN vs INNER JOIN 비교:
LEFT JOIN (포괄적):
• 모든 고객 포함: 주문 여부와 상관없이
• NULL 허용: 주문 없는 고객은 OrderID가 NULL
• 데이터 보존: 왼쪽 테이블의 모든 정보 유지
INNER JOIN (제한적):
• 매칭 고객만: 실제 주문한 고객만 포함
• 완전한 정보: 양쪽 테이블에 모두 데이터 있는 경우만
• 데이터 손실: 주문 없는 고객은 결과에서 제외
실제 결과 비교:
샘플 데이터:
```txt
Customers: Alice, Bob, Charlie
Orders: Alice(주문2개), Charlie(주문1개), Bob(주문없음)
```
LEFT JOIN 결과:
```txt
CustomerName | OrderID
Alice | 101
Alice | 102
Bob | NULL ← 주문 없지만 포함
Charlie | 103
-- 총 4개 레코드
```
INNER JOIN 결과:
```txt
CustomerName | OrderID
Alice | 101
Alice | 102
Charlie | 103
-- 총 3개 레코드 (Bob 제외됨)
```
💡 학습 팁
이 문제를 포함한 SQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.