SQL - JOIN 테이블 결합

이희수·2024년 12월 16일

원하는 데이터가 여러 테이블에 분산되어 있을 때, 하나의 테이블로 결합시킬 수 있다.

JOIN문을 활용하면 가능한데, 아래와 같은 형식으로 작성한다.

select*
from food_orders fo join customers c on fo.customer_id = c.customer_id 

두 테이블에 공통적으로 존재하는 컬럼을 on 다음에 작성해주는 형태로 두 테이블을 join해줄 수 있다.

두 테이블을 join할 때에, 한 쪽 테이블만 데이터값을 가지고 있는 경우가 있다.

예를 들어, customer테이블과 order테이블 모두 customer_id컬럼에 대한 값들을 가지고 있으나, 어떤 customer_id 들은 order 데이터가 없는 경우가 있을 수 있다.

이때, 데이터 값이 없는 행들도 join한 테이블에 추가할 것인지, 추가하지 않을것인지 결정할 수 있다.

  1. Left Join
select*
from a left join b on a.customer_id = b.customer_id 

테이블 a 와 b를 left join하면, a를 기준으로 a와 b가 합쳐진 테이블이 생성된다. a가 기준이기 때문에 b에 데이터값이 없더라도 null로 표시되고, a는 모든 데이터가 조회된다.

  1. Inner Join
select*
from a inner join b on a.customer_id = b.customer_id 

inner join하면 a와 b테이블 모두 데이터값을 가지는 경우에만 조회되는 테이블이 생성된다. a와 b 모두 가지고 있는 데이터가 기준이다.

0개의 댓글