INNER JOIN

=> 교집합

 

select *
from A
inner join B on A.id = B.id

select *
froma A,B
A.id = B.id

결과

=> A 테이블과 B 테이블이 모두 가지고 있는 데이터만 검색!

 

OUTER JOIN(FULL/LEFT/RIGHT)

FULL OUTER JOIN

=> 합집합 (MySQL에는 없음 다만 LEFT JOIN과 RIGHT JOIN을 UNION으로 묶어 사용할 수는 있)

 

LEFT OUTER JOIN

=> 왼쪽을 기준으로 JOIN

select * from A LEFT OUTER JOIN B ON (A.id = B.id)

결과 => 왼쪽 테이블인 A의 모든 데이터 + A,B의 중복데이터 검색

 

A테이블의 한개의 레코드에 여러개의 B테이블 레코드가 일치할 경우 해당 A레코드를 여러번 표시

A테이블에 있는 레코드에 매치되는 레코드가 B에 없으면 NULL을 표시

 

 

RIGHT OUTER JOIN

=> 오른쪽을 기준으로 JOIN

select * from A RIGHT OUTER JOIN B ON (A.id = B.id)

결과 => 왼쪽 테이블인 B의 모든 데이터 + A,B의 중복데이터 검색

 

B테이블의 한개의 레코드에 여러개의 A테이블 레코드가 일치할 경우 해당 A레코드를 여러번 표시

B테이블에 있는 레코드에 매치되는 레코드가 A에 없으면 NULL을 표시

'SQL' 카테고리의 다른 글

프로그래머스 SQL 고득점 KIT 뿌시기 - SELECT 1  (0) 2024.05.05
[SQL] 기본 문법 정리  (0) 2023.06.23
복사했습니다!