일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sqlite3
- 밑바닥부터 시작하는 딥러닝
- 미니배치
- 최댓값
- 학습 구현
- MIN
- sigmoid
- max
- 수치미분
- next.js 튜토리얼
- Pointwise Convolution
- Next.js
- 제약조건
- Depthwise Separagle Convolution
- COUNT
- Depthwise Convolution
- 신경망
- 합계
- total
- 평균
- sum
- AVG
- PYTHON
- 오차제곱합
- 렐루함수
- 데이터베이스
- join
- PyQt5
- 교차엔트로피오차
- 시험데이터
- Today
- Total
우잉's Development
SQLite3_OUTER JOIN 본문
OUTER 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 | 개발부 |
5 | Cho | 4 | ||
6 | Song | 1 | 1 | 영업부 |
왼쪽 테이블의 데이터중 ID값이 오른쪽 테이블의 ID값이 없더라도 데이터를 받아온다.
주의사항
외부 조인인 경우!!
1) 왼쪽 테이블밖에 없는 데이터도 받아오는 방법을 LEFT OUTER JOIN ,
2) 오른쪽 테이블 밖에 없는 데이터도 받아오는 것을 RIGHT OUTER JOIN,
3) 왼쪽 테이블밖에 없는 데이터와 오른쪽 테이블 밖에 없는 데이터도 모두 받아오는 것은 FULL OUTER JOIN
이라고 한다.
But, 현재 sqlite3버전에서는 오직 left outer join만 지원
2. LEFT OUTER JOIN 절 사용법
SELECT 테이블명. 컬럼 명, ...
FROM 테이블명1
LEFT OUTER JOIN 테이블명2
ON 테이블명1.컬럼명1 = 테이블명2.컬럼명2;
저번 게시글에서 사용했던 부서와 직원 테이블을 사용할 것입니다.
1. 에서 설명했던 결과와 같은 결과입니다. 왼쪽 직원 테이블에서 부서 id가 4인 Cho는 부서 테이블 id가 없으므로 null값으로 조회되었습니다.
이번에는 부서 테이블에 직원 테이블을 left outer join 하겠습니다.
자 위와 다른 점은 Cho의 데이터가 나오지 않았습니다. dept테이블에 employee테이블을 외부 조인하면 dept테이블에만 있는 데이터가 없어지므로, 내부 조인의 경우와 같은 결과가 조회되었습니다.
3. 조회할 데이터 컬럼 지정 방법
이번에는 조회할 데이터를 직원 테이블의 id, name과 부서 테이블에 부서명을 조회하겠습니다.
'개발 > SQLite3' 카테고리의 다른 글
SQLite3_NATURAL 키워드, SELF JOIN (0) | 2022.01.07 |
---|---|
SQLite3_CROSS JOIN (0) | 2022.01.07 |
SQLite3_INNER JOIN (0) | 2022.01.07 |
SQLite3_ CASE 절, GROUP BY 절, HAVING 절 (0) | 2022.01.06 |
SQLite3_LIMIT절, OFFSET절 (0) | 2022.01.06 |