Join은 둘 이상의 테이블을 연결해서 데이터를 검색하는 방법이다.
테이블을 연결하려면 테이블이 하나 이상의 컬럼을 공유하고 있어야 한다. 공유하고 있는 컬럼은 PK 또는 FK로 사용한다.
JOIN 종류
간단하게 표현하면.
Inner Join : Table A와 Table B의 교집합을 조회
LEFT/RIGHT Join : 부분 집합
Outer Join : Table A와 Table B의 합집합을 조회
table을 두개 만들어서 정리해보자
테이블 A
ID | 나무 이름 |
---|---|
1 | 감나무 |
2 | 배나무 |
3 | 솔나무 |
테이블 B
ID | 산이름 |
---|---|
1 | 감나무 산 |
2 | 배나무 산 |
4 | 솔나무 산 |
5 | 홍나무 산 |
이렇게 A,B 테이블이 있을 때
ID | 나무이름 | 산이름 |
---|---|---|
1 | 감나무 | 감나무 산 |
2 | 배나무 | 배나무 산 |
ID | 나무이름 | 산이름 |
---|---|---|
1 | 감나무 | 감나무 산 |
2 | 배나무 | 배나무 산 |
3 | 솔나무 | NULL |
2.1 조인기준 왼쪾에 있는 것만 SELECT됨(A-B)
Select A.ID A.나무이름 A.산이름 FROM A LEFT OUTER JOIN B ON A.ID = B.ID
WHERE B.ID IS NULL
WHERE을 사용해서 NULL인 값을 조회해서 NULL값을 가지고 있는 3 솔나무만 가져올 수도 있다.
ID | 나무이름 | 산이름 |
---|---|---|
1 | 감나무 | 감나무 산 |
2 | 배나무 | 배나무 산 |
4 | NULL | 솔나무산 |
5 | NULL | 홍나무 산 |
3.1 조인기준 오른쪽에 있는 것만 SELECT!
(RIGHT에 있는 것만 B-A)
SELECT A.ID A.나무이름 A.산이름 FROM A RIGHT OUTER JOIN B ON A.ID = B.ID
WHERE A.ID IS NULL
WHERE을 사용해서 NULL인 값을 조회해서 나무이름이 NULL값을 가지고 있는 것만 조회가능.
4.OUTER Join 양쪽 테이블의 가지고 있는 데이터 모두 SELECT
ID | 나무이름 | 산이름 |
---|---|---|
1 | 감나무 | 감나무 산 |
2 | 배나무 | 배나무 산 |
3 | 솔나무 | NULL |
4 | NULL | 솔나무 산 |
5 | NULL | 홍나무 산 |
4.1 오른쪽에 있는 값만 + 왼쪽에 있는 값만 SELECT
ID | 나무이름 | 산이름 |
---|---|---|
3 | 솔나무 | NULL |
4 | NULL | 솔나무 산 |
5 | NULL | 홍나무 산 |