SQL - 문제 미리보기
문제 1667
hard
다음 중 Self Join을 활용하기에 가장 적절한 상황은?
정답: B
Self Join의 최적 활용 시나리오:
• 계층적 관계: 같은 테이블 내에서 상하 관계 표현
• 재귀적 참조: 테이블이 자기 자신을 참조하는 구조
• 조직도: 직원-상사, 부서-상위부서 관계
• 카테고리 트리: 상위카테고리-하위카테고리 관계
각 선택지 분석:
1번 (고객-주문) - 일반 JOIN:
```sql
-- 서로 다른 테이블 간 조인
SELECT c.CustomerName, o.OrderID
FROM Customers c
INNER JOIN Orders o ON c.CustomerID = o.CustomerID;
```
2번 (직원-상사) - Self JOIN 최적:
```sql
-- 직원 테이블 구조
Employees:
EmployeeID | Name | ManagerID
1 | Alice | NULL -- 최고 관리자
2 | Bob | 1 -- Alice의 부하
3 | Charlie | 1 -- Alice의 부하
4 | David | 2 -- Bob의 부하
-- Self Join으로 직원과 상사 매칭
SELECT
emp.Name AS Employee,
mgr.Name AS Manager
FROM Employees emp
LEFT JOIN Employees mgr ON emp.ManagerID = mgr.EmployeeID;
-- 결과
Employee | Manager
Alice | NULL -- 최고 관리자
Bob | Alice
Charlie | Alice
David | Bob
```
3번 (상품-카테고리) - 일반 JOIN:
```sql
-- 서로 다른 테이블 간 조인
SELECT p.ProductName, c.CategoryName
FROM Products p
INNER JOIN Categories c ON p.CategoryID = c.CategoryID;
```
4번 (다른 DB) - 크로스 DB JOIN:
```sql
-- 데이터베이스 간 조인
SELECT a.*, b.*
FROM database1.table1 a
INNER JOIN database2.table2 b ON a.id = b.id;
```
💡 학습 팁
이 문제를 포함한 SQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.