left (join을 기준으로 왼쪽의 테이블과) , right (join을 기준으로 오른쪽의 테이블)
두 개의 테이블을 합체하는 것을 조인이라고 한다
두 개의 테이블의 교집합만 결과물로 나오게 되는 join
where 절의 필터와 같은 효과를 낸다고도 볼 수 있다
SELECT
FROM
INNER JOIN
ON : 무엇을 기점으로 join 시킬지
inner join은 r과 l 의 위치를 신경쓰지 않아도 된다.
두 개의 테이블의 합집함을 결과물로 낸다
SELECT
FROM
FULL OUTER JOIN
ON
left의 테이블을 전부 다 보여달라는 의미
여기서부터는 l과 r 의 위치가 중요해진다
from 이 '어디에서 가져오겠다' 이기 때문에 left join 에서는 Table L을, right join 에서는 Table R을 가져와야 하는 것. 주의해야함
right의 테이블을 전부 다 보여달라는 의미
join key가 필요없는 이유는, 어떤 기준 없이 모든 ~ 로우와 컬럼에 모두~ 연결할 거기 때문이다
만약 on에 들어갈 각 컬럼 명이 똑같다면 on이 아니라 using을 사용할 수도 있다.
=> 하지만 선호하지는 않음. 어떤 컬럼에 어떤 컬럼을 join 시켰는지를 명시해주는 게 더 나음
(모르는 사람은 알 수 없으니까)
그럼 아까 만들었던 실습용 테이블을 join하려면 어떻게 하면 될까?
사실 지금은 row (길이) 가 같기 때문에 다 똑같은 결과가 생긴다