
정의
종류
2가지 테이블 (A, B)가 있다고 가정 후 여러 JOIN들에 대하여 학습해보겠습니다.
TABLE_A
| ID | ENAME |
|---|---|
| 1 | AAAA |
| 2 | BBBB |
| 3 | CCCC |
TABLE_B
| ID | KNAME |
|---|---|
| 1 | 가 |
| 2 | 나 |
| 4 | 라 |
| 5 | 마 |

| ID | ENAME | KNAME |
|---|---|---|
| 1 | AAAA | 가 |
| 2 | BBBB | 나 |
SELECT
A.ID, A.ENAME, B.KNAME
FROM TABLE_A AS A INNER JOIN TABLE_B AS B
ON A.ID = B.ID
고전적인 WHERE의 INNER JOIN문
SELECT
A.ID, A.ENAME, B.KNAME
FROM TABLE_A AS A, TABLE_B AS B
WHERE A.ID = B.ID

| ID | ENAME | KNAME |
|---|---|---|
| 1 | AAAA | 가 |
| 2 | BBBB | 나 |
| 3 | CCCC | NULL |
SELECT A.ID, A.ENAME, B.KNAME
FROM TABLE_A AS A LEFT OUTER JOIN TABLE_B AS B
ON A.ID = B.ID

| ID | ENAME | KNAME |
|---|---|---|
| 3 | CCCC | NULL |
SELECT A.ID, A.ENAME, B.KNAME
FROM TABLE_A AS A LEFT OUTER JOIN TABLE_B AS B
ON A.ID = B.ID
WHERE B.ID IS NULL

| ID | ENAME | KNAME |
|---|---|---|
| 1 | AAAA | 가 |
| 2 | BBBB | 나 |
| 4 | NULL | 라 |
| 5 | NULL | 마 |
SELECT A.ID, A.ENAME, B.KNAME
FROM TABLE_A AS A RIGHT OUTER JOIN TABLE_B AS B
ON A.ID = B.ID

| ID | ENAME | KNAME |
|---|---|---|
| 4 | NULL | 라 |
| 5 | NULL | 마 |
SELECT A.ID, A.ENAME, B.KNAME
FROM TABLE_A AS A RIGHT OUTER JOIN TABLE_B AS B
ON A.ID = B.ID
WHERE A.ID IS NULL

| ID | ENAME | KNAME |
|---|---|---|
| 1 | AAAA | 가 |
| 2 | BBBB | 나 |
| 3 | CCCC | NULL |
| 4 | NULL | 라 |
| 5 | NULL | 마 |
SELECT A.ID, A.ENAME, B.KNAME
FROM TABLE_A AS A FULL OUTER JOIN TABLE_B AS B
ON A.ID = B.ID

| ID | ENAME | KNAME |
|---|---|---|
| 3 | CCCC | NULL |
| 4 | NULL | 라 |
| 5 | NULL | 마 |
SELECT A.ID, A.ENAME, B.KNAME
FROM TABLE_A AS A FULL OUTER JOIN TABLE_B AS B
ON A.ID = B.ID
WHERE A.ID IS NULL OR B.ID IS NULL
| ID | ENAME | ID | KNAME |
|---|---|---|---|
| 1 | AAAA | 1 | 가 |
| 1 | AAAA | 2 | 나 |
| 1 | AAAA | 4 | 라 |
| 1 | AAAA | 5 | 마 |
| 2 | BBBB | 1 | 가 |
| 2 | BBBB | 2 | 나 |
| 2 | BBBB | 4 | 라 |
| 2 | BBBB | 5 | 마 |
| 3 | CCCC | 1 | 가 |
| 3 | CCCC | 2 | 나 |
| 3 | CCCC | 4 | 라 |
| 3 | CCCC | 5 | 마 |
SELECT A.ID, A.ENAME, B.ID, B.KNAME
FROM TABLE_A AS A CROSS JOIN TABLE_B AS B

SELECT A.NAME, B.AGE
FROM EX_TABLE AS A INNER JOIN EX_TABLE AS B