SQL 통한 Database 관리

inner join

JBS 12 2024. 8. 20. 19:06

`INNER JOIN`은 SQL에서 두 테이블 간의 교집합을 반환하는 조인 유형입니다. 두 테이블에서 지정된 조건에 맞는 데이터만을 선택하여 결합된 결과를 제공합니다. `INNER JOIN`은 기본적인 조인 방식으로, 두 테이블 간에 공통된 데이터만을 추출할 때 사용됩니다.

### 문법

```sql
SELECT columns
FROM table1
INNER JOIN table2
ON table1.column = table2.column;
```

### 동작 원리

- **`INNER JOIN`**은 두 테이블을 조인할 때, `ON` 절에 명시된 조건에 따라 일치하는 행들만 반환합니다.
- 일치하지 않는 행들은 결과에 포함되지 않습니다.

### 예제

#### 테이블 구조

- **EMPLOYEES 테이블**:

| EmployeeID | Name   | DepartmentID |
|------------|--------|--------------|
| 1          | Alice  | 10           |
| 2          | Bob    | 20           |
| 3          | Carol  | 10           |
| 4          | Dave   | 30           |

- **DEPARTMENTS 테이블**:

| DepartmentID | DepartmentName |
|--------------|----------------|
| 10           | HR             |
| 20           | IT             |
| 40           | Finance        |

#### `INNER JOIN`을 사용한 쿼리

```sql
SELECT e.Name, d.DepartmentName
FROM EMPLOYEES e
INNER JOIN DEPARTMENTS d
ON e.DepartmentID = d.DepartmentID;
```

### 결과

- 이 쿼리는 `EMPLOYEES` 테이블과 `DEPARTMENTS` 테이블을 `DepartmentID`를 기준으로 조인합니다.
- 결과는 두 테이블에서 `DepartmentID`가 일치하는 행들만 반환됩니다.

| Name  | DepartmentName |
|-------|----------------|
| Alice | HR             |
| Bob   | IT             |
| Carol | HR             |

#### 결과 해석
- `Alice`와 `Carol`은 `HR` 부서에 속해 있으며, `Bob`은 `IT` 부서에 속해 있습니다.
- `Dave`는 `DEPARTMENTS` 테이블에 해당하는 `DepartmentID`가 없기 때문에 결과에 포함되지 않았습니다.
- 또한, `DEPARTMENTS` 테이블의 `DepartmentID`가 `40`인 `Finance` 부서는 `EMPLOYEES` 테이블에 일치하는 행이 없기 때문에 결과에 포함되지 않았습니다.

### 요약

- **`INNER JOIN`**은 두 테이블에서 공통된 데이터를 반환하는 조인 방식입니다.
- `ON` 절에 지정된 조건을 기준으로 두 테이블 간의 교집합을 반환하며, 조건에 맞지 않는 행들은 결과에서 제외됩니다.
- 이는 데이터베이스에서 관계를 나타내는 기본적인 조인 방식으로, 두 테이블 간의 일치하는 데이터를 추출하는 데 자주 사용됩니다.

'SQL 통한 Database 관리' 카테고리의 다른 글

like연산자  (0) 2024.08.20
select count(*) CNT from EMP_TBL A, RULE_TBL B where A.Ename like B.Rule  (0) 2024.08.20
LEFT OUTER JOIN`  (0) 2024.08.20
레코드 와 칼럼 차이  (0) 2024.08.20
UNION ALL`과 `NOT EXISTS  (0) 2024.08.20