본문 바로가기
SQL

[SQL] JOIN

by 호강하는 지해 2024. 10. 31.
728x90

쿼리를 짜다보면 두 개의 테이블을 엮어야만 원하는 결과가 나오는 경우가 정말 많다. 그럴 때 쓰는 것이 바로 JOIN !

조인을 쓰면 두 개의 테이블을 엮어서 원하는 데이터를 추출할 수 있다.

JOIN에 대해 알아보자 !

 

 

SQL의 JOIN은 크게 4종류로 나눌 수 있다.

  • INNER JOIN(내부 조인): 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.
  • OUTER JOIN(외부 조인): 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다.
  • CROSS JOIN(상호 조인): 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인하는 기능이다.
  • SELF JOIN(자체 조인): 자신이 자신과 조인한다는 의미로, 1개의 테이블을 사용한다.

 


 

INNER JOIN (내부 조인)

두 테이블을 연결할 때 가장 많이 사용하는 조인이 바로 내부 조인이다. 그냥 조인이라고 하면 내부 조인을 의미한다.

SELECT <열 목록>
FROM <첫 번째 테이블>
    INNER JOIN <두 번째 테이블>
    ON <조인 조건>
[WHERE 검색 조건]

 

 

 

 

 

 

 

OUTER JOIN (외부 조인)

내부 조인은 두 테이블에 모두 데이터가 있어야만 결과가 나오지만, 외부 조인은 한쪽에만 데이터가 있어도 결과가 나온다.

SELECT <열 목록>
FROM <첫 번째 테이블(LEFT 테이블)>
    <LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블(RIGHT 테이블)>
     ON <조인 조건>
[WHERE 검색 조건]

 

  • LEFT OUTER JOIN: 왼쪽 테이블의 모든 값이 출력되는 조인
  • RIGHT OUTER JOIN: 오른쪽 테이블의 모든 값이 출력되는 조인
  • FULL OUTER JOIN: 왼쪽 외부 조인과 오른쪽 외부 조인이 합쳐진 것

 

 

아주 유용한 참고 사진이었다. 나또한 프로그래머스에서 JOIN 문제를 풀때 LEFT OUTER JOIN 밑에 방식을 사용했더니 잘 풀어졌다.

이 사진을 잘 이해해보고 자주 보면 도움이 될 것이다.

 

 

 

 

 

 

 

CROSS JOIN (상호 조인)

한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능이다.
상호 조인 결과의 전체 행 개수는 두 테이블의 각 행의 개수를 곱한 수만큼 된다.
카티션 곱(CARTESIAN PRODUCT)라고도 한다.

SELECT *
FROM <첫 번째 테이블>
    CROSS JOIN <두 번째 테이블>

 

 

 

 

 

 

 

SELF JOIN (자체 조인)

자체 조인은 자기 자신과 조인하므로 1개의 테이블을 사용한다. 별도의 문법이 있는 것은 아니고 1개로 조인하면 자체 조인이 된다.

SELECT <열 목록>
FROM <테이블> 별칭A
    INNER JOIN <테이블> 별칭B
[WHERE 검색 조건]

 

 

 

 

 

 

https://hongong.hanbit.co.kr/sql-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-joininner-outer-cross-self-join/

 

SQL 기본 문법: JOIN(INNER, OUTER, CROSS, SELF JOIN)

조인은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다. INNER JOIN(내부 조인)은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.OUTER JOIN(외부

hongong.hanbit.co.kr

 

728x90

'SQL' 카테고리의 다른 글

[SQL] 프로그래머스 - 있었는데요 없었습니다  (0) 2024.10.31