한량처럼 살고 싶다

[JOIN] SQL 풀면서 헷갈리는 문법 (업데이트 중) 본문

PS/SQL

[JOIN] SQL 풀면서 헷갈리는 문법 (업데이트 중)

투영 2024. 1. 16. 22:12

1. INNER JOIN  (DEFAULT)

 

A와 B의 교집합을 구한다. 두 테이블에 모두 지정한 열의 데이터가 반드시 있어야 함.

테이블과 테이블의 별칭 + INNER JOIN + 테이블과 테이블의 별칭 + ON 조인조건

SELECT * FROM TABLE_A AS A
INNER JOIN TABLE_B AS B
ON A.ID = B.ID

 

2. OUTER JOIN

A와 B의 합집합을 구한다. 1개의 테이블에만 데이터가 있어도 결과가 나온다.

  • LEFT OUTER JOIN : 왼쪽 테이블의 모든 값이 나옴
  • RIGHT OUTER JOIN: 오른쪽 테이블의 모든 값이 나옴
  • FULL OUTER JOIN: 왼쪽 또는 오른쪽 테이블의 모든 값이 나옴
SELECT * 
FROM LEFT_TABLE AS L
<LEFT | RIGHT | FULL> OUTER JOIN RIGHT_TABLE AS R
ON 조건;

 

이 사진이 아우터 조인 설명이 정말 잘 되어있어서 가져옴 (https://hongong.hanbit.co.kr/sql-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-joininner-outer-cross-self-join/) 혼공사이트에서 제공해준 사진입니다

 

3. CROSS JOIN

두 테이블의 카타시안 곱만큼의 행이 생긴다.  모든 경우의 수를 다 가져온다고 이해함

SELECT * FROM FIRST_TABLE CROSS JOIN SECOND_TABLE;

 

4. SELF JOIN

1개로 조인한 것, 나 스스로와 조인됨

SELECT * FROM TABLEA INNER JOIN TABLEA;