티스토리 뷰
안녕하세요, 끙정입니다.
오늘은 조인의 마지막으로 간단하게 SELF JOIN에 대해서 알아보겠습니다.
SELF JOIN은 조인 테이블이 자기 자신입니다.
특별한 문법이 없고 내부 조인 문법을 사용합니다.
한 테이블을 조인하는 것이 의미가 있으려면 테이블 내의 필드끼리 참조 관계여야 합니다.
즉, 한 필드가 다른 필드를 참조하는 1:n 의 자기 참조 관계가 있는 특수한 테이블에만 사용할 수 있습니다.
다음 테이블을 예시로 보겠습니다.
/* 실습용 테이블을 만들어봅니다. */
CREATE TABLE tDirectory
(
id INT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
parent INT NOT NULL
);
INSERT INTO tDirectory (id, name, parent) VALUES (1, 'Root', 0);
INSERT INTO tDirectory (id, name, parent) VALUES (2, 'Data', 1);
INSERT INTO tDirectory (id, name, parent) VALUES (3, 'Program', 1);
INSERT INTO tDirectory (id, name, parent) VALUES (4, 'Sound', 2);
INSERT INTO tDirectory (id, name, parent) VALUES (5, 'Picture', 2);
INSERT INTO tDirectory (id, name, parent) VALUES (6, 'Game', 3);
INSERT INTO tDirectory (id, name, parent) VALUES (7, 'StarCraft', 6);
이런 테이블이 나옵니다.
id는 디렉터리의 고유 번호이고 name은 디렉터리의 이름입니다.
parent는 부모 필드가 누구인가를 가리키며 0일 경우 루트입니다.
이 테이블에서 id와 parent는 둘 다 디렉터리 번호이되 parent가 id를 참조합니다.
셀프 조인을 통해 자신의 부모 디렉터리가 무엇인지 출력해보겠습니다.
SELECT A.name 부모, B.name 자식 FROM tDirectory A
INNER JOIN tDirectory B ON A.id = B.parent; /* A의 id와 B의 parent를 일치시킨다. */
크로스 조인을 통해서 내부 구조를 살펴보면 이해가 더 빠릅니다.
SELECT A.name 부모, A.id, B.name 자식, B.parent FROM tDirectory A
CROSS JOIN tDirectory B;
7 X 7 의 논리곱이 출력된다.
이러한 CROSS JOIN문에서 id와 parent가 일치하는 행만 출력하는 것입니다.
그만 알아보겠습니다.
출처
http://www.yes24.com/Product/Goods/101637633
김상형의 SQL 정복 : 소문난 명강의 (무료특별판) - YES24
DBMS에 제약 없이 SQL을 활용한다!핵심 원리를 알려주는 SQL 바이블 DBMS 제품이나 개발툴이 아닌 SQL 언어 그 자체를 배우는 바이블 도서다. 특정 DBMS에 종속적인 사용법보다는 표준화된 데이터 관리
www.yes24.com
'SQL' 카테고리의 다른 글
함수에 대해 알아보자 2편 (feat. 문자열 함수, CONCAT, LENGTH) (0) | 2023.02.10 |
---|---|
함수에 대해 알아보자 1편 (feat. 수치 함수) (0) | 2023.02.09 |
조인에 대해 알아보자 2편 (조인의 조건) (0) | 2023.02.08 |
조인에 대해 알아보자 1편 (feat. CROSS JOIN, INNER JOIN, OUTER JOIN) (0) | 2023.02.08 |
서브쿼리에 대해 알아보자 5편 (feat. MERGE, UPDATE FROM) (0) | 2023.02.07 |
- Total
- Today
- Yesterday
- sql
- aitv
- apple intelligence
- Nvidia
- 액침냉각
- Meta
- datacenter
- galaxyai
- ai pc
- Intel
- condenast
- ChatGPT
- alexa
- aichip
- SSI
- IDC
- Apple
- OpenAI
- perplexity
- sb1047
- genai
- Amazon
- searchgpt
- Samsung
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |