반응형
1. INNER JOIN (내부 조인, 동등 조인)
SELECT {컬럼 명}
FROM {테이블 A} (INNER) JOIN {테이블 B}
ON A.{공통 속성} = B.{공통 속성};
INNER는 생략해도 된다.
가장 일반적인 JOIN(교집합)이며 조건이 일치하는 값이 두 테이블에 모두 존재할 때 출력한다.
아래와 같이 카티션 곱을 활용해 작성해도 된다.
SELECT {컬럼 명}
FROM {테이블 A}, {테이블 B}
WHERE A.{공통 속성} = B.{공통 속성};
하지만 카티션 곱을 이용하면 메모리 사용량이 커지므로 JOIN을 사용하는 것이 좋다.
2. OUTER JOIN (외부 조인)
LEFT OUTER JOIN
- A 테이블과 중복되는 B 값과 B 와 중복되지 않은 A 의 모든 값을 출력
RIGHT OUTER JOIN
- B 테이블과 중복되는 A 값과 A 와 중복되지 않는 B 의 모든 값을 출력
FULL OUTER JOIN
- A 테이블과 B 테이블의 모든 값을 출력
SELECT {컬럼 명}
FROM {테이블 A} LEFT/RIGHT/FULL (OUTER) JOIN {테이블 B}
ON A.{공통 컬럼} = B.{공통 컬럼};
마찬가지로 OUTER는 생략 가능하다.
ON은 WHERE과 같은 문법으로 작성해주면 된다.
SELF JOIN의 경우 테이블에 별칭을 줘야하는데 as를 사용하지 않고 띄어쓰기를 사용한다.
3. NATURAL JOIN (자연 조인)
SELECT {컬럼 명}
FROM {테이블 명} NATURAL JOIN {테이블 명}
# WHERE {조건식}
두 테이블 간의 동일한 이름을 갖는 모든 컬럼들에 대해 같은 값을 가지는 행만을 고려하여 출력한다.
중복 값은 제거한다.
예시
아래 두 테이블의 LEFT OUTER JOIN과 NATURAL JOIN에 대한 예시를 남기며 마무리 하겠다.
반응형
'Back-End > SQL' 카테고리의 다른 글
[프로그래머스 SQL 고득점 Kit] NULL 처리하기 (0) | 2022.03.04 |
---|---|
[프로그래머스 SQL 고득점 Kit] 입양 시각 구하기(2) (0) | 2022.03.04 |
[프로그래머스 SQL 고득점 Kit] 입양 시각 구하기(1) (0) | 2022.03.04 |
[프로그래머스 SQL 고득점 Kit] 동명 동물 수 찾기 (0) | 2022.03.04 |
[프로그래머스 SQL 고득점 Kit] 중복 제거하기 (0) | 2022.03.04 |