SQL - 문제 미리보기

문제 1643

hard
다음 상황에서 가장 적절한 JOIN 타입은? 상황: 모든 고객 목록을 출력하되, 주문 이력이 있는 고객은 최근 주문일을 함께 표시하고, 주문 이력이 없는 고객은 '주문없음'으로 표시하고 싶습니다.
A. INNER JOIN
B. LEFT JOIN
C. RIGHT JOIN
D. FULL OUTER JOIN

정답: B

요구사항 분석: • 기준: 모든 고객 목록 (고객 테이블이 기준) • 보존: 주문 이력이 없는 고객도 포함 • 결합: 주문 정보가 있으면 표시, 없으면 NULL 처리 • 결론: LEFT JOIN이 최적 LEFT JOIN을 선택하는 이유: 1. 기준 테이블 완전 보존: ```sql SELECT Customers.CustomerID, Customers.CustomerName, Orders.OrderDate FROM Customers -- 기준 테이블 (왼쪽) LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID; ``` 2. 요구사항 충족: • 모든 고객: Customers 테이블의 모든 레코드 포함 • 주문 정보: 있으면 OrderDate 표시, 없으면 NULL • 누락 없음: 주문하지 않은 고객도 목록에 포함 3. 예상 결과: ```txt CustomerID | CustomerName | OrderDate 1 | John Smith | 2024-01-15 2 | Jane Doe | NULL -- 주문 없음 3 | Bob Wilson | 2024-02-20 4 | Alice Brown | NULL -- 주문 없음 ```

💡 학습 팁

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