다음 SQL에 대한 설명으로 옳은 것은? (창고코드는 기본키)[창고]창… | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 8회
다음 SQL에 대한 설명으로 옳은 것은? (창고코드는 기본키)[창고]
| 창고코드 | 창고명 | 상위창고코드 |
|---|---|---|
| W1 | 중앙센터 | (null) |
| W2 | 동부센터 | W1 |
| W3 | 서부센터 | W1 |
| W4 | 동부분소 | W2 |
SELECT A.창고명, B.창고명 AS 상위창고명
FROM 창고 A
LEFT OUTER JOIN 창고 B
ON A.상위창고코드 = B.창고코드;1
결과 행 수는 창고 수보다 많아진다
2
별칭 A·B 없이도 같은 결과를 얻는다
3
상위창고가 없는 창고도 결과에 나온다
4
B 는 창고와 다른 별도 테이블이다
해설
같은 창고 테이블을 별칭 A·B 로 두 번 쓰는 셀프 조인이며, LEFT OUTER JOIN 이라 상위창고코드가 NULL 인 중앙센터도 상위창고명 NULL 로 남는다.
창고코드가 기본키라 A 의 각 행은 B 의 한 행과만 이어지므로 결과는 4행이다.
- 같은 테이블을 두 번 쓰려면 별칭으로 구분해야 한다.
- B 쪽은 기본키로 한 행만 매칭되어 행 수가 늘지 않는다.
- B 는 같은 창고 테이블을 다른 이름으로 부른 것이다.
오류나 개정된 내용이 보이면 알려주세요