[Database] JOIN(조인) 정리(INNER / LEFT / RIGHT / OUTER / CROSS / SELF)

sukyeongs·2023년 3월 31일
0
post-thumbnail

🤞Join

Join : 둘 이상의 테이블을 연결하여 하나의 결과를 만들어내는 것

  • 연결하고자 하는 테이블들이 적어도 하나의 컬럼을 공유하고 있어야 한다.
    - 공유하는 컬럼을 PK or FK 값으로 사용한다.

➡️ 두 테이블의 조인을 위해서는 기본키(PK)와 외래키(FK) 관계로 맺어져야 한다.


Join의 종류

  1. INNER JOIN
  2. LEFT OUTER JOIN
  3. RIGHT OUTER JOIN
  4. FULL OUTER JOIN
  5. CROSS JOIN
  6. SELF JOIN

1. INNER JOIN

  • 교집합
  • 기준 테이블과 join 테이블의 중복된 값을 보여준다.
  • 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.
SELECT A.ID, A.ENAME, A.KNAME
FROM A INNER JOIN B
ON A.ID = B.ID;

2. LEFT (OUTER) JOIN

  • JOIN 기준 왼쪽에 있는 테이블 모두 SELECT 된다.
  • 공통 부분 + 왼쪽 테이블 데이터
SELECT A.ID, A.ENAME, A.KNAME
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID;

3. RIGHT OUTER JOIN

  • JOIN 기준 오른쪽에 있는 테이블 모두 SELECT 된다.
  • 공통 부분 + 오른쪽 테이블 데이터
SELECT A.ID, A.ENAME, A.KNAME
FROM A RIGHT OUTER JOIN B
ON A.ID = B.ID;

4. (FULL) OUTER JOIN

  • 합집합
  • A 테이블의 데이터, B 테이블의 데이터 모두 SELECT
SELECT A.ID, A.ENAME, A.KNAME
FROM A FULL OUTER JOIN B
ON A.ID = B.ID;

5. CROSS JOIN

  • 모든 경우의 수를 전부 표현하는 방식
  • A 테이블의 데이터가 3개, B 테이블의 데이터가 4개인 경우, 총 3 * 4 = 12개의 데이터가 검색된다.
  • 대개 테스트로 사용할 대용량의 테이블을 생성할 경우에 사용된다.
SELECT A.ID, A.ENAME, A.KNAME
FROM A
CROSS JOIN B

‼️ CROSS JOIN은 상호 모든 행에 대한 결합이 발생하는 것이므로, ON 구문을 사용할 수 없다.


6. SELF JOIN

  • 자기 자신과 조인하는 것
  • 하나의 테이블을 여러번 복사하여 조인하는 것과 같다.
    자신이 갖고 있는 컬럼을 다양하게 변형시켜 활용할 때 자주 사용한다.

  • Output의 Manager는 모두 Input 데이터로부터 나온 것이다.
    ➡️ 테이블내 동일한 값이 다른 의미를 갖는 경우(다른 컬럼에 존재하는 경우) 두 테이블을 서로 SELF JOIN시켜 정보를 확인할 수 있다.



Reference

profile
꺌꺌률리

0개의 댓글