InNerJoin이란
데이터베이스에서 두 개 이상의 테이블을 연결하여 연관된 데이터를 결합하는 JOIN기능 중 하나 이다.
INNER JOIN은 주로 두 테이블의 공통된 값(공통 키)에 대한 결과를 찾고자 할 때 사용한다.
예제 SQL코드
-- id_table 생성 및 데이터 삽입
CREATE TABLE id_table (
id INT PRIMARY KEY,
writer_id INT
);
INSERT INTO id_table (id, writer_id) VALUES (1, 1);
INSERT INTO id_table (id, writer_id) VALUES (2, 2);
INSERT INTO id_table (id, writer_id) VALUES (3, 3);
INSERT INTO id_table (id, writer_id) VALUES (4, 1);
INSERT INTO id_table (id, writer_id) VALUES (5, 3);
-- title_table 생성 및 데이터 삽입
CREATE TABLE title_table (
id INT PRIMARY KEY,
title VARCHAR(50)
);
INSERT INTO title_table (id, title) VALUES (1, '축구 경기 보기');
INSERT INTO title_table (id, title) VALUES (2, '요리 배우기');
INSERT INTO title_table (id, title) VALUES (3, '책 읽기');
INSERT INTO title_table (id, title) VALUES (4, '산책하기');
INSERT INTO title_table (id, title) VALUES (5, '영화 관람');
-- writer_table 생성 및 데이터 삽입
CREATE TABLE writer_table (
writer_id INT PRIMARY KEY,
writer_name VARCHAR(20)
);
INSERT INTO writer_table (writer_id, writer_name) VALUES (1, '길동이');
INSERT INTO writer_table (writer_id, writer_name) VALUES (2, '육룡이');
INSERT INTO writer_table (writer_id, writer_name) VALUES (3, '이도');
-- 테이블 조인
SELECT
id_table.id AS ID,
title_table.title AS Title,
writer_table.writer_name AS Writer
FROM
id_table
INNER JOIN
title_table ON id_table.id = title_table.id
INNER JOIN
writer_table ON id_table.writer_id = writer_table.writer_id;
1. id_table
2. title_table
3 writer_table
위 세 개의 테이블이 두 개의 INNER JOIN을 통해 연결된다.
INNER JOIN 결과
결과 테이블의 각 행은 세 테이블의 조인 조건에 부합하는 행을 결합한 것이고,
이 경우 id_table.id, writer_id 는 각각 title.id 와 writer.id 와 일치한다. 이런 방식으로 세 테이블이 연결되어
하나의 테이블로 제공 한다.
따라서 결과 테이블에는 각 id에 해당하는 제목(title)과 작성자(writer) 함께 표시된다.
INNER JOIN은 여러 테이블의 관련 정보를 하나의 테이블로 결합하여 복잡한 데이터 집합에서
필요한 정보를 효과적으로 추출할수 있다.
'DB > Oracle' 카테고리의 다른 글
Oracle DB - UNION (0) | 2023.05.18 |
---|---|
Oracle DB - OUTER JOIN (0) | 2023.05.16 |
Oracle DB - 서브쿼리(Subquery) (0) | 2023.05.12 |
Oracle DB - SELECT 구문 (0) | 2023.05.10 |
Oracle DB - LENGTH 문자열의 길이 반환 (0) | 2023.04.27 |