포스트

MySQL JOIN

MySQL JOIN

Inner Join

1
2
3
select *
from 테이블A a
       join 테이블B b on a.id = b.aid

inner join이지만 inner는 생략 가능합니다.

Outer Join

Left Join

1
2
3
select *
from 테이블A a
       left join 테이블B b on a.id = b.aid

Right Join

1
2
3
select *
from 테이블A a
       right join 테이블B b on a.id = b.aid

left outer join, right outer join이지만 outer는 생략 가능합니다.

순서만 바꾸면 동일한 결과이기 때문에 가독성 관계로 left join을 많이 쓰고 right join은 잘 사용하지 않습니다.

Self Join

  • 본인 테이블을 조인 하는 방법
  • 테이블을 별칭으로 구분하여 작성
1
2
3
select *
from 테이블A a
       join 테이블A b on a.id = b.aid

Cross Join

  • ON 조건 없이 한 테이블의 모든 행을 다른 테이블의 모든 행과 각각 연결하는 방법
1
2
3
select *
from 테이블A a
       cross join 테이블B b
  • 만약 테이블A에 데이터가 3개이고 테이블B의 데이터가 4개면 3*412개의 행이 결과로 나옵니다.

데이터가 많은 테이블에 사용하면 결과 행이 기하급수적으로 늘어나 서버에 심각한 부하를 줄 수 있으므로 주의해야 합니다.

참고

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.