1. OUTER JOIN 이란?
2. 예시
3. OUTER JOIN (LEFT, RIGHT, FULL)
3.1. LEFT OUTER JOIN
3.2. RIGHT OUTER JOIN
3.3. FULL OUTER JOIN (ORACLE)
1. OUTER JOIN 이란?
JOIN 하는 여러 테이블에서 한 쪽에는 데이터가 있고 한 쪽에는 데이터가 없을 때, 데이터가 있는 쪽의 모든 데이터를 가져오면서 데이터가 없는 쪽의 데이터를 JOIN 해서 가져오고 싶을 때 사용한다.
2. 예시
TABLE_1
id | name |
1 | 짱구 |
2 | 철수 |
3 | 맹구 |
TABLE_2
id | product |
1 | 사탕 |
3 | 과자 |
5 | 과자 |
TABLE_1 에 OUTER JOIN 하면
id | name | id | product |
1 | 짱구 | 1 | 사탕 |
2 | 철수 | NULL | NULL |
3 | 맹구 | 3 | 과자 |
3. OUTER JOIN (LEFT, RIGHT, FULL)
3.1. LEFT OUTER JOIN
TABLE_1 에 JOIN 되고, TABLE_1에 없는 값은 NULL 로 보여줌
SELECT *
FROM TABLE_1
LEFT OUTER JOIN TABLE_2
ON TABLE_1.id = TABLE_2.id
id | name | id | product |
1 | 짱구 | 1 | 사탕 |
2 | 철수 | NULL | NULL |
3 | 맹구 | 3 | 과자 |
3.2. RIGHT OUTER JOIN
TABLE_2 에 JOIN 되고, TABLE_2에 없는 값은 NULL 로 보여줌
SELECT *
FROM TABLE_1
RIGHT OUTER JOIN TABLE_2
ON TABLE_1.id = TABLE_2.id
id | name | id | product |
1 | 짱구 | 1 | 사탕 |
3 | 맹구 | 3 | 과자 |
NULL | NULL | 5 | 과자 |
3.3. FULL OUTER JOIN (ORACLE)
TABLE_1 과 TABLE_2 의 모든 내용 보여주고 없는 값은 NULL 로 보여줌
SELECT *
FROM TABLE_1
FULL OUTER JOIN TABLE_2
ON TABLE_1.id = TABLE_2.id
id | name | id | product |
1 | 짱구 | 1 | 사탕 |
2 | 철수 | NULL | NULL |
3 | 맹구 | 3 | 과자 |
NULL | NULL | 5 | 과자 |
* mysql 에는 FULL OUTER JOIN 없음
(SELECT *
FROM TABLE_1
LEFT OUTER JOIN TABLE_2
ON TABLE_1.id = TABLE_2.id)
union
(SELECT *
FROM TABLE_1
RIGHT OUTER JOIN TABLE_2
ON TABLE_1.id = TABLE_2.id)
반응형