SQL - 문제 미리보기

문제 1667

hard
다음 중 Self Join을 활용하기에 가장 적절한 상황은?
A. 고객 테이블과 주문 테이블을 연결할 때
B. 직원 테이블에서 각 직원과 그들의 상사를 매칭할 때
C. 상품 테이블과 카테고리 테이블을 조인할 때
D. 서로 다른 두 데이터베이스의 테이블을 연결할 때

정답: 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 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.