728x90
반응형
💡Join이란?
2개 이상의 테이블을 연결하여 하나의 테이블처럼 데이터를 검색 할 때 사용한다.
Ex.
SELECT 테이블.컬럼, 테이블.컬럼
FROM 테이블1,테이블2
WHERE 조건
Join의 종류
Inner Join
- 내부조인은 가장 많이 사용되는 조인 구문 중에 하나다.
- 내부 조인은 조인 Condition에 따라 2 개의 테이블(A, B)의 컬럼을 합쳐 새로운 테이블을 생성한다.
- 즉 교차 조인을 한 결과에 조인 조건문을 충족시키는 레코드를 반환한다고 생각할 수 있다.
1)
SELECT 조회할 컬럼
FROM 테이블1, 테이블2
[WHERE 조건문]
2)
SELECT 조회할 컬럼
FROM 테이블1
(INNER) JOIN 테이블2
ON 테이블1.컬럼 = 테이블2.컬럼
[WHERE 추가조건]
Natural Join
- 자연 조인은 두 테이블 간의 동일한 이름을 갖는 모든 컬럼들을 조인한다.
- 반드시 두 테이블 간의 동일한 이름, 타입을 가진 컬럼이 필요하다.
SELECT 조회할 컬럼
FROM 테이블1
NATURAL JOIN 테이블2
[WHERE 조건문]
Outer Join
outer join은 한 쪽에는 데이터가 있고, 한 쪽에는 데이터가 없는 경우, 데이터가 있는 쪽 테이블의 내용을 모두 출력하는 것이다.
즉, 조건에 맞지 않아도 해당하는 행을 출력하고 싶을 때 사용할 수 있다.
left Outer Join
- 왼쪽에 있는 테이블의 모든 결과를 가져 온 후 오른쪽 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL로 표시한다.
SELECT 검색할 컬럼
FROM 테이블명 LEFT OUTER JOIN 테이블명2
ON 테이블.컬럼명 = 테이블2.컬럼명;
Right Outer Join
- 오른쪽에 있는 테이블의 모든 결과를 가져온 후 왼쪽의 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL을 표시한다.
SELECT 검색할 컬럼
FROM 테이블명 RIGHT OUTER JOIN 테이블명2
ON 테이블명 = 테이블명2;
Full Outer Join
- LEFT OUTER JOIN 과 RIGHT OUTER JOIN을 합친 것으로, 양쪽 모두 조건이 일치하지 않는 것까지 모두 결합해 출력한다
SELECT 검색할 컬럼
FROM 테이블명 FULL OUTER JOIN 테이블명2
ON 테이블.컬럼명 = 테이블2.컬럼명; (ORACLE의 경우)
Self Join
셀프 조인은 주로 위계성 데이터, 순차성 데이터를 다루거나 테이블 안의 관계성을 명시해야하는 등의 상황에 사용한다.
1.위계성 데이터 (Hierarchical Data)
- 위계성을 지니는 데이터가 셀프 조인을 필요로 하는 대표적인 데이터이다.
*각 사원의 매니저 이름을 같이 출력하는 query
SELECT
e.id,
e.first_name,
e.last_name,
e.salary,
m.first_name AS boss_first_name
m.last_name AS boss_last_name
FROM employee AS e
INNER JOIN employee AS m
ON e.manager_id = m.id;
join 되는 예시
결과
2. 순차성 데이터 (Sequential Data)
- 1개의 테이블 내에서 순차적으로 데이터를 출력할 때도 사용할 수 있다.
3. 1개의 테이블 안에 관계성이 명시되어야 할 데이터가 여러개 존재할 때
- city 테이블에서route테이블을 조인해 출발지에 대한 정보를 가져오고, 해당 테이블에서 다시 city테이블을 조인해 도착지에 대한 정보를 추출한다.
SELECT
start.name AS start_city,
destination.name AS destination_city
FROM city AS start
INNER JOIN route AS r
ON start.id = r.from_city_id
INNER JOIN city AS destination
ON destination.id = r.to_city_id;
https://devbox.tistory.com/entry/Comporison-LEFT-JOIN-%EA%B3%BC-RIGHT-JOIN
https://etloveguitar.tistory.com/123
728x90
반응형
'💾 데이터베이스(Database) > SQL' 카테고리의 다른 글
[SQL] SQL Cookbook - 05. 메타 데이터 쿼리 (0) | 2023.10.04 |
---|---|
[SQL] SQL Cookbook - 04.삽입, 갱신, 삭제 (0) | 2023.09.18 |
[SQL] SQL Cookbook - 03.다중 테이블 작업 (0) | 2023.09.08 |
[SQL] SQL Cookbook - 02.쿼리 결과 정렬 (0) | 2023.09.07 |
[SQL] SQL Cookbook - 01.레코드 검색 (0) | 2023.08.31 |