join을 이용하여 데이터 조회하기
SQL에게 Join 이란?
두개 이상의 table 들에 있는 데이터를 한번에 조회하는 것
여러 종류의 join이 존재
Implicit Join
Where 절에 join condition을 명시하고, from 절에는 table 들만 나열
old style
단점 : where 절에 select 조건과 join 조건이 있어서 가독성 떨어지고 문법 오류 발생 가능
Explicit Join
from 절에 Join 키워드와 함께 joined table 들을 명시하는 방식
Inner Join (Inner는 생략 가능)
두 테이블에서 join condition을 만족하는 tuple 들로 result table을 만드는 join
join condition에 다양한 연산자 사용 가능
예시
dept_id와 department_id가 같은 데이터를 조회
(dept_id = 15 , department_id = 1002 데이터는 포함 안됨)
Outer Join
두 테이블에서 join condition을 만족하지 않는 tuple들도 result table에 포함하는 join
3가지 종류가 있음 이 종류들은 equi join임
1. Left Join
2. Right Join
3. Full Join
Left Join 예시
left인 employee 테이블에 있는 데이터 simon의 튜플중 없는 값은 null로
Righ Join 예시
right 테이블인 department 테이블의 튜플들은 모두 가져옴
FullJoin 예시 (MySQL에서는 지원하지 않는 기능)
두개의 테이블 모두 매칭되지 않는 튜플들까지 결과 테이블에 있음
추가로 Join 예시
https://www.youtube.com/watch?v=E-khvKjjVv4&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=8
https://schatz37.tistory.com/2