땃지
ing
땃지
전체 방문자
오늘
어제
  • 분류 전체보기 (100)
    • 공부 (37)
      • Java (4)
      • Spring Boot (4)
      • 자료구조 (4)
      • CS (18)
      • JSP (6)
      • Git (1)
    • 문제 해결 (60)
      • 백준 (51)
      • 프로그래머스 (9)
    • 프로젝트 (3)
      • 당신의 안목 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Contact

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
땃지
[SQL] INNER JOIN / OUTER JOIN
공부/CS

[SQL] INNER JOIN / OUTER JOIN

2022. 12. 12. 15:42

예제용 테이블

INNER JOIN

A와 B테이블이 있을 때 INNER JOIN은 두 테이블이 모두 가지고 있는 데이터를 검색한다.

쉽게 말해서 INNER JOIN은 교집합이다.

위와 같이 A와 B 테이블이 있다고 했을 때, 다음과 같이 Inner Join 하면

SELECT * FROM A
INNER JOIN B
ON A.id = B.id;

두 테이블 모두에 존재하는 데이터에 대한 결과를 얻을 수 있다.

 

 

OUTER JOIN

OUTER JOIN은 일종의 합집합으로 특정 테이블을 기준으로 데이터를 보여준다.

OUTER JOIN은 크게 세 종류로 나눌 수 있다.

 

1) LEFT OUTER JOIN

LEFT OUTER JOIN은 왼쪽 테이블을 기준으로 OUTER JOIN을 수행하는 것이다.

A와 B 테이블이 있을 때 왼쪽 테이블인 A의 모든 데이터를 가져온 후 오른쪽 테이블인 B의 데이터를 매칭한다.

매칭되는 데이터가 없는 경우 데이터를 NULL로 표시한다.

 

아래와 같이 LEFT OUTER JOIN을 수행하면

SELECT * FROM A
LEFT OUTER JOIN B
ON a.id = b.id;

위와 같은 결과를 얻을 수 있다.

 

2) RIGHT OUTER JOIN

RIGHT OUTER JOIN은 오른쪽테이블을 기준으로 OUTER JOIN을 수행하는 것이다.

A와 B 테이블이 있을 때 오른쪽 테이블인 B의 모든 데이터를 가져온 후 왼쪽 테이블인 A의 데이터를 매칭한다.

매칭되는 데이터가 없는 경우 데이터를 NULL로 표시한다.

 

아래와 같이 RIGHT OUTER JOIN을 수행하면

SELECT * FROM A
RIGHT OUTER JOIN B
ON a.id = b.id;

위와 같은 결과를 얻을 수 있다.

 

3) FULL OUTER JOIN

FULL OUTER JOIN은 LEFT, RIGHT OUTER JOIN을 합친 것으로 조건이 맞지 않는 데이터까지

모두 결합하여 출력하는 JOIN이다.

 

 

FULL OUTER JOIN 예제를 수행해보려 하니 에러가 발생했다.

서치해보니 MySQL에서는 FULL OUTER JOIN을 지원하지 않는다고 한다.

 

UNION 구문을 이용하여 FULL JOIN과 같은 결과를 얻을 수 있다.

(SELECT * FROM A LEFT OUTER JOIN B ON a.id = b.id)
UNION
(SELECT * FROM A RIGHT OUTER JOIN B ON a.id = b.id);


References

https://helloworld92.tistory.com/34

http://clairdelunes.tistory.com/22

저작자표시 비영리 변경금지 (새창열림)
    '공부/CS' 카테고리의 다른 글
    • JSON
    • 동기 / 비동기 방식
    • Spring MVC
    • MVC 패턴
    땃지
    땃지

    티스토리툴바