- 데이터베이스 테이블 간의 결합
- 조인을 할 때는 두개 이상의 테이블이 필요하며,
- 컬럼값이 같은 기본키와 외래키가 일치하는 테이블이어야 조인이 가능하다.
두 테이블에 모두 매치되는 값을 가진 행을 리턴
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 |
왼쪽 테이블의 모든 행을 리턴하고, 오른쪽 테이블에서는 왼쪽 테이블에 매치되는 행을 리턴함
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 |
오른쪽 테이블의 모든 행을 리턴하고, 왼쪽 테이블에서는 오른쪽 테이블에 매치되는 행을 리턴함
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 |
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 |