[SQL] JOIN 정리

6720·2023년 4월 13일
0

이거 모르겠어요

목록 보기
15/38
  • 이 게시글은 프로그래머스 SQL Kit - JOIN를 기준으로 문제에 쓰였던 표현을 정리하며, 그 외의 다른 이론이나 공식을 정리함.
  • MySQL을 기준으로 정리함.

JOIN

두 개의 테이블을 엮어서 원하는 데이터를 추출할 수 있게 함.

INNER JOIN

내부 조인 = 교집합

select column1
from table1
	(inner) join table2
	on table1.column2 = table2.column2;

OUTER JOIN

외부 조인 = 합집합 (left와 right는 부분집합)
한쪽에만 데이터가 있어도 결과가 나옴.
⇒ 한쪽을 기준으로 테이블을 합침.

select column1
from table1
	<left | right | full> outer join table2
	on table1.column2 = table2.column2;
  • left: 왼쪽 테이블의 모든 값이 출력되는 조인
  • right: 오른쪽 테이블의 모든 값이 출력되는 조인
  • full: 왼쪽 또는 오른쪽 테이블의 모든 값이 출력되는 조인

+) 변형

[A-B: 공통부분을 제외한 A]

select a.id, a.name
from a
	left outer join b
on a.id = b.id
where b.id is null;

[B-A: 공통부분을 제외한 B]

select a.id, a.name
from a
	right outer join b
on a.id = b.id
where a.id is null;

CROSS JOIN

상호 조인 = 카티션 곱(Cartesian product)
한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능
전체 행 개수는 두 테이블의 각 행의 개수를 곱한 수만큼 됨.

select *
from table1
	cross join table2;

SELF JOIN

자체 조인
자기 자신을 조인하므로 1개의 테이블을 사용함.

select *
from table1 a
	inner join table2 b;

참고 자료

profile
뭐라도 하자

0개의 댓글