[SQLD] 2-9. Join
2021. 10. 30. 20:20ㆍCertificate`/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를 서로 매핑