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 |