Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- DB
- 시큐리티
- spring
- Flutter
- CS지식
- 파이썬
- springboot
- 백준
- javascript
- CS
- 스프링부트
- 스프링 부트 쇼핑몰 프로젝트 with JPA
- 프로그래머스
- python
- 데이터
- 리눅스
- postgresql
- 자바스크립트
- 네트워크
- Spring Security
- backjoon
- JPA
- Java
- 자바
- 자료구조
- 데이터베이스
- 스프링
- 플러터
- baekjoon
- Oracle
Archives
- Today
- Total
Jin's Dev Story
[PostgreSQL] PostgreSQL SELF 조인 본문
SELF 조인
- 같은 테이블끼리 특정 컬럼을 기준으로 매칭되는 컬럼을 출력하는 조인
- 즉, 같은 테이블의 데이터를 각각의 집합으로 분류한 후 조인
실습
1) 업체의 직원 조직도의 데이터를 보여주는 테이블
SELECT * FROM EMPLOYEE;
2) EMPLOYEE 테이블과 EMPLOYEE 테이블을 조인. EMPLOYEE_ID 와 MANAGER_ID 컬럼을 조인
⇒ || : 문자열 합치기 연산자
SELECT
E.FIRST_NAME || ' ' || E.LAST_NAME EMPLOYEE,
M.FIRST_NAME || ' ' || M.LAST_NAME MANAGER
FROM EMPLOYEE E
INNER JOIN EMPLOYEE M ON M.EMPLOYEE_ID = E.MANAGER_ID
ORDER BY MANAGER;
3) MPLOYEE 테이블과 EMPLOYEE 테이블을 조인. EMPLOYEE_ID와 MANAGER_ID 컬럼을 조인. 단, 최상위 관리자도 모두 보이게 조회
SELECT
E.FIRST_NAME || ' ' || E.LAST_NAME EMPLOYEE,
M.FIRST_NAME || ' ' || M.LAST_NAME MANAGER
FROM EMPLOYEE E
LEFT JOIN EMPLOYEE M ON M.EMPLOYEE_ID = E.MANAGER_ID
ORDER BY MANAGER;
4) FILM 테이블과 FILM 테이블을 SELF 조인. 서로 다른 영화인 집합을 조회하며 영화의 상영 시간은 동일한 데이터를 조회
SELECT F1.TITLE, F2.TITLE, F1.LENGTH
FROM FILM F1
INNER JOIN FILM F2 ON F1.FILM_ID <> F2.FILM_ID AND F1.LENGTH = F2.LENGTH;
-- SELF 조인을 사용하지 않을때 조회 방법 -> 값이 나오지 않음
SELECT *
FROM FILM F1
WHERE
F1.LENGTH = F1.LENGTH
AND F1.FILM_ID <> F1.FILM_ID;
'Database > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] PostgreSQL CROSS 조인 (0) | 2024.06.11 |
---|---|
[PostgreSQL] PostgreSQL FULL OUTER 조인 (0) | 2024.06.11 |
[PostgreSQL] PostgreSQL OUTER 조인 (0) | 2024.06.11 |
[PostgreSQL] PostgreSQL INNER 조인 (0) | 2024.06.11 |
[PostgreSQL] PostgreSQL 조인 (0) | 2024.06.11 |