SQL-Join

김명주·2024년 11월 14일
0

Join

Join 이란 테이블 두개를 서로 연결해서 더 많은 열 정보를 갖는 하나의 테이블로 만들때 사용됨.

  1. Inner Join
    Inner join은 테이블 1과 테이블 2가 공통으로 가지고 있는 행만 출력한다. 즉, 두 테이블 모두에 있는 데이터만 출력한다.
    그리고 첫번째 테이블과 두번째 테이블에 둘 다 있는 데이터라면 중복된 데이터가 있는 열도 출력한다.
    그리고 테이블이 여러개가 나오므로 As 를 활용하여 별칭 사용
    그리고 Select 뒤에 열 이름을 사용할 때 같은 열 이름이 두개 이상의 테이블에 존재하면 테이블의 출처를 표시해야 함
Select 테이블1.열이름, 테이블2.열이름
From 테이블 1
Inner Join 테이블 2
On 테이블1.열이름 = 테이블2.열이름

ex)
Select 고객표.고객이름, 주문내역.세일
From 고객표
Inner Join 주문내역
On 고객표.고객번호 = 주문내역.고객번호
  1. Left Join
    Inner Join은 두 테이블에 공통인 행을 출력하는 반면 Left Join은 테이블 1(From 뒤에 오는 테이블. 밑 예시에서는 고객 표 테이블)에 있는 모든 행을 출력한다.
    그리고 왼쪽 테이블에 있는 데이터라면 중복된 데이터가 있는 열도 그대로 다 출력한다.
Select 테이블1.열이름, 테이블2.열이름
From 테이블 1
Left Join 테이블 2
On 테이블1.열이름 = 테이블2.열이름

ex)
Select 고객표.고객이름, 주문내역.세일
From 고객표
Left Join 주문내역
On 고객표.고객번호 = 주문내역.고객번호
  1. Right Join
    실전에서는 사용하지 않는다고 보는게 맞다.
    그 이유는 Left Join과 다른것이 방향 뿐이니, 차라리 Left Join을 쓰는게 편하고 이해하기 쉽기 때문.
    Right Join은 테이블 2에 있는 모든 행을 출력. 밑 예시에서는 주문 내역 테이블
Select 테이블1.열이름, 테이블2.열이름
From 테이블 1
Right Join 테이블 2
On 테이블1.열이름 = 테이블2.열이름

ex)
Select 고객표.고객이름, 주문내역.세일
From 고객표
Right Join 주문내역
On 고객표.고객번호 = 주문내역.고객번호
  1. Full Join
    Full Join은 테이블 1과 테이블 2 에 있는 모든 행을 출력한다.
    FULL JOIN은 두 테이블을 연결하여 하나의 조회 결과를 보여주되,
  • 기준 컬럼의 값을 공통적으로 갖고 있는 레코드들(INNER JOIN 결과)

  • 양쪽 테이블 각각에 대하여 한쪽 테이블의 값은 있고, 다른 테이블에는 없는 경우의 레코드들(RIGHT, LEFT JOIN 결과)

을 모두 모아서 보여 주는 JOIN 방법.
즉 FULL JOIN은 LEFT JOIN, RIGHT JOIN의 결과를 모두 합하여 보여준다.

Select 테이블1.열이름, 테이블2.열이름
From 테이블 1
Full Join 테이블 2
On 테이블1.열이름 = 테이블2.열이름

ex)
Select 온라인주문.고객이름, 온라인주문.세일 as 온라인세일, 가게주문.세일 as 가게세일
From 온라인주문
Full Join 가게주문
On 온라인주문.고객번호 = 가게주문.고객번호
profile
개발자를 향해 달리는 사람

0개의 댓글