Join (Inner Join & Left Join)

won·2023년 1월 16일
0

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 테이블이 있을 때

1. Inner Join :교집합은 두 테이블에 공통으로 있는 부분만 Select가 된다.

ID나무이름산이름
1감나무감나무 산
2배나무배나무 산

2. LEFT Join : 조인기준으로 왼쪽 테이블의 값을 모두 Select된다.(공통부분 + LEFT에 있는거만)

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 솔나무만 가져올 수도 있다.

  1. RIGHT Join : 조인기준 오른쪽에 있는 모든 값 Select됨
    (공통부분 + RIGHT에 있는 값)
ID나무이름산이름
1감나무감나무 산
2배나무배나무 산
4NULL솔나무산
5NULL홍나무 산

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
4NULL솔나무 산
5NULL홍나무 산

4.1 오른쪽에 있는 값만 + 왼쪽에 있는 값만 SELECT

ID나무이름산이름
3솔나무NULL
4NULL솔나무 산
5NULL홍나무 산
profile
어찌저찌 굴러가는 개발자

0개의 댓글

관련 채용 정보