Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 분산
- 머신러닝
- gpt1
- transformer
- 코딩테스트
- ABAE
- 알고리즘
- SQL 첫걸음
- dfs
- 자연어처리
- deepseek
- 가상환경
- 파이썬
- LLM
- Aspect
- paper review
- 백준
- GPT
- NLP
- SQL
- 프로그래머스
- join
- leetcode
- MySQL
- outer join
- Bert
- ChatGPT
- 그래프
- 연구
- 논문리뷰
Archives
- Today
- Total
huginn muninn
[SQL] JOIN 기본개념과 EQUI JOIN, Non EQUI JOIN) 본문
1. EQUI JOIN
Equi join은 두 개의 테이블을 조인할 때, 두 테이블 간의 조인 조건이 등호(=)로 연결되는 조인 유형. 이는 두 테이블 간의 특정 열 값이 서로 일치하는 경우에만 해당된다.
SELECT *
FROM 테이블1
JOIN 테이블2 ON 테이블1.열 = 테이블2.열;
예를 들어, 사원 테이블과 부서 테이블을 Equi join하여 사원 정보와 부서 정보를 함께 조회할 수 있다:
SELECT 사원.이름, 사원.부서ID, 부서.부서명
FROM 사원
JOIN 부서 ON 사원.부서ID = 부서.부서ID;
이 쿼리는 사원 테이블의 부서ID 열과 부서 테이블의 부서ID 열이 일치하는 경우에만 결과를 반환한다.
Equi join은 데이터베이스 쿼리에서 가장 일반적으로 사용되는 조인 유형 중 하나이다. 두 테이블 간의 관계가 명확할 때 유용하게 사용할 수 있다.
2. Non EQUI JOIN
Non Equi Join은 테이블 간 조인 조건이 등호(=)가 아닌 다른 비교 연산자(>, <, >=, <=, !=, BETWEEN 등)를 사용하는 조인 유형. 이는 두 테이블의 열 값이 정확히 일치하지 않더라도 다른 조건으로 연결할 수 있게 해준다.
SELECT *
FROM 테이블1
JOIN 테이블2 ON 테이블1.열 > 테이블2.열;
위 코드는 다음과 같은 과정으로 동작한다.
- 테이블1과 테이블2를 조인합니다.
- 테이블1의 특정 열 값이 테이블2의 동일한 열 값보다 큰 경우에만 결과에 포함됩니다.
- 조인된 결과에는 두 테이블의 모든 열이 포함됩니다.
3. OUTER JOIN

- Outer Join은 두 테이블을 조인할 때, 한 쪽 테이블에만 데이터가 있어도 결과를 출력하는 조인 방식.
- 즉, 조인 조건에 맞지 않는 행도 결과에 포함되어 출력.
Outer Join의 종류 Outer Join에는 총 3가지 종류가 있다:
- Left Outer Join
- 왼쪽 테이블의 모든 행을 포함하고, 오른쪽 테이블의 매칭되는 행을 가져온다.
- 오른쪽 테이블에 매칭되는 행이 없으면 NULL 값이 출력된다.
- Right Outer Join
- 오른쪽 테이블의 모든 행을 포함하고, 왼쪽 테이블의 매칭되는 행을 가져온다.
- 왼쪽 테이블에 매칭되는 행이 없으면 NULL 값이 출력된다.
- Full Outer Join
- 양쪽 테이블의 모든 행을 포함한다.
- 어느 한 쪽 테이블에만 데이터가 있는 경우 NULL 값이 출력된다.
오라클에서는 모든 행이 출력되는 테이블의 반대편 테이블의 옆에 (+) 기호를 붙여 코드를 작성해주면 된다.
<LEFT OUTER JOIN - ORACLE>
SELECT d.deptno, d.dname, e.empno, e.ename
FROM dept d, emp e
WHERE d.deptno = e.deptno(+);
위 코드는 LEFT outer join의 예시 코드이다.
- 부서 테이블(DEPT)의 모든 행을 포함하고, 사원 테이블(EMP)의 매칭되는 행을 가져온다.
- 사원 테이블에 매칭되는 행이 없으면 NULL 값이 출력된다.
'데이터베이스 > SQL' 카테고리의 다른 글
| [SQL] 서브쿼리의 개념과 종류 (0) | 2024.05.15 |
|---|---|
| [SQL] Standard Join - Inner Join, Outer Join, Natural Join, Cross Join, (0) | 2024.05.15 |
| [SQL] 정규화 (Normalization) (0) | 2024.05.02 |
| [SQL] 데이터 분석을 위한 SQL 레시피 - 3장 6강 (0) | 2023.08.01 |
| [SQL] 데이터의 추가, 삭제, 갱신 (0) | 2023.07.10 |