일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sqlite3
- 렐루함수
- 미니배치
- COUNT
- 합계
- 수치미분
- 제약조건
- sigmoid
- Depthwise Convolution
- join
- 신경망
- 시험데이터
- 평균
- 데이터베이스
- sum
- AVG
- 밑바닥부터 시작하는 딥러닝
- PYTHON
- Depthwise Separagle Convolution
- Next.js
- 교차엔트로피오차
- PyQt5
- 오차제곱합
- next.js 튜토리얼
- 학습 구현
- 최댓값
- Pointwise Convolution
- max
- total
- MIN
- Today
- Total
우잉's Development
SQLite3_INNER JOIN 본문
INNER JOIN 절
: INNER JOIN(내부 조인)은 2개의 테이블을 조인하여 데이터를 검색하는 방법 중에 지정된 각 테이블의 컬럼 값이 일치하는 데이터만 검색하는 방법
1. 내부 조인
<부서>
ID | 부서명 |
1 | 영업부 |
2 | 관리부 |
3 | 개발부 |
<직원>
ID | 이름 | 부서ID |
1 | Kim | 1 |
2 | Lee | 3 |
3 | Kang | 2 |
4 | Han | 3 |
5 | Cho | 4 |
6 | Song | 1 |
위의 두 테이블을 내부 조인하면 다음과 같다.
ID | 이름 | 부서ID | ID | 부서명 |
1 | Kim | 1 | 1 | 영업부 |
2 | Lee | 3 | 3 | 개발부 |
3 | Kang | 2 | 2 | 관리부 |
4 | Han | 3 | 3 | 개발부 |
6 | Song | 1 | 1 | 영업부 |
<부서> 테이블에 없는 ID를 가진 <직원>테이블의 5번은 내부 조인하는 경우 데이터를 받아오지 않는다.
두 테이블간의 연결관계는 부서 id에 있으므로 inner join의 on절 조건이 돼야 한다.
(즉 on 직원.부서id = 부서.id )
2. INNER JOIN절 사용법
SELECT 테이블명.컬럼명, ... FROM 테이블
INNER JOIN 테이블명2
ON 테이블명1.컬럼명1 = 테이블명2.컬럼명2;
예제를 살펴봅시다. 일단 이전에 있던 직원 테이블인 employee 테이블을 삭제하고 새로 생성하고 데이터를 추가합니다.
이번에는 부서 테이블인 dept테이블을 생성하고 데이터를 추가합니다.
이번에는 어느 테이블에 어느 테이블을 조인할 것인지 결정하고 조인을 해봅시다.
1-1 에서와 같이 직원 테이블에 부서 테이블을 조인합니다.
내부 조인한 결과 부서 테이블에 없는 4번을 가진 직원테이블의 Cho가 조회되지 않았습니다.
이번에는 부서테이블에 직원 테이블을 조인해보겠습니다. 여기서 as 절을 사용해서 해보겠습니다.
받아온 조회 데이터의 컬럼 순서는 다르지만 받아온 데이터 자체의 내용은 동일합니다.
3. 조회할 데이터 컬럼 지정 방법
이번에는 전체 데이터를 가져오지 않고 반복되는 직원 테이블의 부서 ID와 부서테이블의 ID 둘 중 하나를
생략해서 조회하겠습니다. 또한 직원테이블의 직원 이름과 부서 테이블의 부서 이름이 둘 다 name칼럼으로
되어 있어서 as 절로 명칭을 정정하겠습니다.
일단 위에서 주의할 것들은 아래와 같습니다.
1) as절에서 as가 생략이 가능합니다. 컬럼명 as '***'로 사용해왔는데 생략해서 컬럼명 '***'으로 사용 가능합니다.
2) 조회할 컬럼들 중 두 테이블 간에 같이 사용하는 것은 테이블명.컬럼명으로 사용해야 됩니다.
즉, 직원 테이블과 부서 테이블의 name이라던지 id는 어느 테이블의 컬럼인지 구분을 해야 됩니다.
구분이 되는 deptid같은 경우는 그냥 적어줍니다.
'개발 > SQLite3' 카테고리의 다른 글
SQLite3_CROSS JOIN (0) | 2022.01.07 |
---|---|
SQLite3_OUTER JOIN (0) | 2022.01.07 |
SQLite3_ CASE 절, GROUP BY 절, HAVING 절 (0) | 2022.01.06 |
SQLite3_LIMIT절, OFFSET절 (0) | 2022.01.06 |
SQLite3_IS NULL절, AS 절, DISTINCT 절 (0) | 2022.01.06 |