Skip to content

Latest commit

 

History

History
153 lines (117 loc) · 3.05 KB

join.md

File metadata and controls

153 lines (117 loc) · 3.05 KB

SQL JOIN

image

조인의 의미

  • 데이터베이스 테이블 간의 결합
  • 조인을 할 때는 두개 이상의 테이블이 필요하며,
  • 컬럼값이 같은 기본키와 외래키가 일치하는 테이블이어야 조인이 가능하다.

조인의 종류

Inner JOIN

image

두 테이블에 모두 매치되는 값을 가진 행을 리턴

SELECT A.NO, A.NAME, A.AGE, B.JOB, B.ADDR
FROM TABLE_A A
INNER JOIN TABLE_B B
ON A.NO = B.NO

TABLE_A

NO NAME AGE
1 LEE 20
2 KIM 30
3 PARK 10

TABLE_B

NO JOB ADDR
1 STUDENT 20
5 TEACHER 30
9 PARK 10

결과

NO NAME AGE JOB ADDR
1 LEE 20 STUDENT 20

LEFT OUTER JOIN

image

왼쪽 테이블의 모든 행을 리턴하고, 오른쪽 테이블에서는 왼쪽 테이블에 매치되는 행을 리턴함

SELECT A.NO, A.NAME, A.AGE, B.JOB, B.ADDR
FROM TABLE_A A
LEFT OUTER JOIN TABLE_B B
ON A.NO = B.NO
--OUTER는 생략 가능

TABLE_A

NO NAME AGE
1 LEE 20
2 KIM 30
3 PARK 10

TABLE_B

NO JOB ADDR
1 STUDENT 20
5 TEACHER 30
9 PARK 10

결과

NO NAME AGE JOB ADDR
1 LEE 20 STUDENT 20
2 KIM 30 NULL NULL
3 PARK 10 NULL NULL

RIGHT OUTER JOIN

image

오른쪽 테이블의 모든 행을 리턴하고, 왼쪽 테이블에서는 오른쪽 테이블에 매치되는 행을 리턴함

SELECT A.NO, A.NAME, A.AGE, B.JOB, B.ADDR
FROM TABLE_A A
RIGHT OUTER JOIN TABLE_B B
ON A.NO = B.NO
--OUTER는 생략 가능

TABLE_A

NO NAME AGE
1 LEE 20
2 KIM 30
3 PARK 10

TABLE_B

NO JOB ADDR
1 STUDENT 20
5 TEACHER 30
9 PARK 10

결과

NO NAME AGE JOB ADDR
1 LEE 20 STUDENT 20
NULL NULL NULL TEACHER 30
NULL NULL NULL PARK 10

FULL OUTER JOIN

image

A에 해당하는 행과 B에 해당하는 행을 모두 출력한다

SELECT A.NO, A.NAME, A.AGE, B.JOB, B.ADDR
FROM TABLE_A A
OUTER JOIN TABLE_B B
ON A.NO = B.NO

TABLE_A

NO NAME AGE
1 LEE 20
2 KIM 30
3 PARK 10

TABLE_B

NO JOB ADDR
1 STUDENT 20
5 TEACHER 30
9 PARK 10

결과

NO NAME AGE JOB ADDR
1 LEE 20 STUDENT 20
2 KIM 30 NULL NULL
3 PARK 10 NULL NULL
5 NULL NULL TEACHER 30
9 NULL NULL PARK 10