OUTER, 테이블 여러개를 JOIN해야되는 경우

2024. 7. 23. 09:43·SQL 정리

테이블 여러개를 JOIN해야되는 경우

SELECT 
    a.columnA,
    b.columnB,
    c.columnC
FROM 
    TableA a
INNER JOIN 
    TableB b ON a.key = b.foreignKeyA
INNER JOIN 
    TableC c ON b.key = c.foreignKeyB;

 

LEFT JOIN을 사용한 예제

 

SELECT 
    t1.id AS Table1_ID,
    t1.columnA AS Table1_ColumnA,
    t2.id AS Table2_ID,
    t2.columnB AS Table2_ColumnB,
    t3.id AS Table3_ID,
    t3.columnC AS Table3_ColumnC
FROM 
    Table1 t1
LEFT JOIN 
    Table2 t2 ON t1.id = t2.table1_id
LEFT JOIN 
    Table3 t3 ON t2.id = t3.table2_id;

 

 

OUTER JOIN이란?

 

OUTER JOIN은 두 테이블을 결합할 때, 조인 조건에 맞지 않는 행도 포함시켜서 결과를 반환하는 조인 유형을 말합니다. OUTER JOIN은 세 가지 유형으로 나눌 수 있습니다:

 

LEFT OUTER JOIN: 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블에서 일치하는 행이 없으면 NULL을 반환합니다.

 

RIGHT OUTER JOIN: 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블에서 일치하는 행이 없으면 NULL을 반환합니다.

 

FULL OUTER JOIN: 양쪽 테이블의 모든 행을 반환하고, 한쪽 테이블에서 일치하는 행이 없으면 NULL을 반환합니다.

 

LEFT OUTER JOIN

LEFT OUTER JOIN: 모든 환자의 정보를 반환하고, 환자가 예약을 가지고 있지 않다면 APPOINTMENT 테이블의 값은 NULL이 됩니다. 

왼쪽 테이블의 모든 행을 포함하고, 오른쪽 테이블의 일치하지 않는 값은 NULL로 채웁니다.

SELECT 
    P.PT_NAME,
    A.APNT_NO,
    A.MCDP_CD
FROM 
    PATIENT P
LEFT OUTER JOIN 
    APPOINTMENT A ON P.PT_NO = A.PT_NO;

 

RIGHT OUTER JOIN

RIGHT OUTER JOIN: 모든 예약 정보를 반환하고, 예약된 환자의 정보가 없는 경우 PATIENT 테이블의 값은 NULL이 됩니다.

오른쪽 테이블의 모든 행을 포함하고, 왼쪽 테이블의 일치하지 않는 값은 NULL로 채웁니다.

SELECT 
    P.PT_NAME,
    A.APNT_NO,
    A.MCDP_CD
FROM 
    PATIENT P
RIGHT OUTER JOIN 
    APPOINTMENT A ON P.PT_NO = A.PT_NO;

 

FULL OUTER JOIN

FULL OUTER JOIN: 모든 환자 정보와 모든 예약 정보를 반환하고, 어느 한쪽 테이블에서 일치하지 않는 값은 NULL이 됩니다.

양쪽 테이블의 모든 행을 포함하고, 한쪽 테이블의 일치하지 않는 값은 NULL로 채웁니다.

SELECT 
    P.PT_NAME,
    A.APNT_NO,
    A.MCDP_CD
FROM 
    PATIENT P
FULL OUTER JOIN 
    APPOINTMENT A ON P.PT_NO = A.PT_NO;
반응형

'SQL 정리' 카테고리의 다른 글

DATEDIFF  (0) 2024.07.27
with  (5) 2024.07.24
CONCAT과 SUBSTRING 응용  (0) 2024.07.20
SQL정리. 6 (USING)  (0) 2024.07.08
SQL 정리 .5  (0) 2024.07.04
'SQL 정리' 카테고리의 다른 글
  • DATEDIFF
  • with
  • CONCAT과 SUBSTRING 응용
  • SQL정리. 6 (USING)
wanduek
wanduek
차근차근 쌓아가는 지식
  • wanduek
    완득님의 블로그
    wanduek
  • 전체
    오늘
    어제
    • 분류 전체보기 (194)
      • Onboarding (0)
      • 아티클 (0)
      • SQL 정리 (20)
      • 웹개발 기초정리(프엔) (9)
      • (Java)코테연습 (27)
      • 미니 프로젝트 (9)
        • 자기소개 웹페이지 (5)
        • 수강생 관리 프로그램(Java) (4)
      • GitHub 오류 및 명령어 정리 (7)
      • Java 문법정리 (Array부터) (17)
      • Java로 이용한 기능 (2)
      • Web지식 (12)
        • web3 (6)
        • 네트워크 (6)
      • 인텔리제이 오류 대처 방법 (1)
      • Computer Science (7)
      • Spring (38)
        • 미니 프로젝트(배달) (2)
        • Spring 트러블 슈팅 (3)
        • QueryDSL, JPQL (3)
        • 미니 프로젝트(뉴스피드) (5)
        • 미니 프로젝트(Trello) (2)
      • 개발자 밋업 (1)
      • Docker (2)
      • Redis (1)
      • AWS (6)
        • AWS 트러블 슈팅 (2)
      • Jmeter (2)
      • 우리 지금 만나 (12)
      • Kafka (1)
      • RabbitMQ (2)
        • 트러블 슈팅 (1)
      • STOMP (2)
      • WebSocket (3)
        • 트러블 슈팅 (2)
      • Node.js (2)
      • Elastic Search (2)
      • Nginx (1)
      • 퍼블엘 (2)
      • openresty (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SQL
    groupby
    ㅏㄷ
    jquery
    github
    백앤드개발자 #초심자
    git
    where
    json
    fetch
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
wanduek
OUTER, 테이블 여러개를 JOIN해야되는 경우
상단으로

티스토리툴바