Join시 데이터 집합 레벨의 변화

도로롱·2023년 1월 8일

SQL

목록 보기
14/19

두 테이블을 조인할 때, on 뒤에 나오는 조건 컬럼의 레벨 수준이 서로 다를때

  • emp table

emp 테이블의 deptno는 집합 수준이 m이다. 해당 컬럼 값들을 보면 20,30,10에 해당되는 값들이 여러번 등장한 것을 볼수 있는데, 이는 중복된 값이 등장한다는 의미로, unique와 반대되는 개념이다.

  • dept table

dept 테이블의 deptno의 집합수준은 1로 unique한 수준이다. 해당 컬럼의 값들을 보면 10,20,30,40이 한번만 등장하고 보이지 않는다. 즉, 중복된 값이 한번도 등장하지 않는다

집합 수준이 다른 컬럼을 기준으로 두 테이블을 조인하면 deptno는 어떤 집합 수준을 가지게 될까?

select a.deptno ,b.deptno ---emp의 deptno 와 dept deptno 는 다르다. 하지만 조인이 되면서 집합레벨이 m인 a의 수준을 따라가게 되어, 
							--select을 한 순간 b 역시 집합 M수준으로 변경되어 조회가 된다
from hr.emp a 
	join hr.dept b on a.deptno =b.deptno 
	

정답은 집합 레벨 수준이 m인 emp의 deptno를 따르게 된다.
1:M 이 조인이 되면 M집합의 레벨을 그대로 유지한다

profile
질문 없는 성장은 없다. 3년차 데이터 분석가

0개의 댓글