-> 블로그 이전

[SQLD] 2-9. Join

2021. 10. 30. 20:20Certificate`/SQLD

Join

- 2개 이상의 테이블을 연결/결합하여 데이터를 출력하는 것

- PK나 FK값의 연관에 의해 Join 성립

- FROM절에 여러 테이블이 나열되더라도 단 2개의 집합 간에만 조인이 일어난다

  -> 앞에서부터 조인해서 최종적으로 2개의 테이블 간의 조인을 실행

  -> (((A JOIN D) JOIN C) JOIN B)

- 테이블의 조인 순서는 옵티마이저에 의해 결정

 

EQUI JOIN

- 2개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하는 경우에 사용 (등가 조인)

- '=' 연산자를 사용해서 표현

- PK ↔ FK의 관계를 기반

SELECT P.PLAYER_NAME 선수명, T.TEAM_NAME 소속팀명
FROM PLAYER P, TEAM T
WHERE P.TEAM_ID = T.TEAM_ID;
------------------------------------------------
SELECT P.PLAYER_NAME 선수명, T.TEAM_NAME 소속팀명
FROM PLAYER P INNER JOIN TEAM T
ON P.TEAM_ID = T.TEAM_ID;

 

Non EQUI JOIN

- 2개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하지 않는 경우에 사용 (비등가 조인)

- '='연산자가 아닌 다른 연산자(Between, >, >=, <, <= 등)들을 사용해서 JOIN을 수행

 

※ Example

사원 테이블 / 급여 등급 테이블

≫ 사원 14명에 대한 급여, 급여등급

 

3개 이상 Table Join

- 각 테이블에 대해 연관된 PK/FK를 서로 매핑