티스토리 뷰
1. JOIN - 역할
다양하게 분리되어 있는 테이블들 중에서 필요한 데이터를 보고자 할 때 테이블을 연결하거나 조합하는 작업
2. JOIN - 기본 테이블
◈ TEST_TABLE_ONE
IDX | ID | NAME | AMT |
1 | test1 | 테스트1 | 1000 |
2 | test2 | 테스트2 | 2000 |
3 | test3 | 테스트3 | 3000 |
4 | test4 | 테스트4 | 4000 |
5 | test5 | 테스트5 | 5000 |
◈ TEST_TABLE_TWO
IDX | ID | NAME | CHECK_YN |
1 | test1 | 테스트1 | Y |
2 | test2 | 테스트2 | Y |
3 | test3 | 테스트3 | |
4 | test6 | 테스트6 | |
5 | test7 | 테스트7 |
3. JOIN - SQL 문장 (일반적인 문장)
1 2 3 4 5 6 7 8 | SELECT A.ID ,A.NAME ,A.AMT ,B.CHECK_YN FROM TEST_TABLE_ONE A ,TEST_TABLE_TWO B WHERE A.ID=B.ID |
◈ 결과 테이블
ID | NAME | AMT | CHECK_YN |
test1 | 테스트1 | 1000 | Y |
test2 | 테스트2 | 2000 | Y |
test3 | 테스트3 | 3000 |
4. JOIN - SQL 문장 (LEFT OUTER JOIN)
1 2 3 4 5 6 7 8 | SELECT A.ID ,A.NAME ,A.AMT ,B.CHECK_YN FROM TEST_TABLE_ONE A ,TEST_TABLE_TWO B WHERE A.ID=B.ID(+) |
1 2 3 4 5 6 7 | SELECT A.ID ,A.NAME ,A.AMT ,B.CHECK_YN FROM TEST_TABLE_ONE A LEFT OUTER JOIN TEST_TABLE_TWO B ON A.ID=B.ID |
◈ 결과 테이블
ID | NAME | AMT | CHECK_YN |
test1 | 테스트1 | 1000 | Y |
test2 | 테스트2 | 2000 | Y |
test3 | 테스트3 | 3000 |
|
test4 | 테스트4 | 4000 |
|
test5 | 테스트5 | 5000 |
◈ 설명
위의 결과는 TEST_TABLE_ONE 과 TEST_TABLE_TWO을 JOIN 했을 경우 TEST_TABLE_ONE에 있는 데이터를 모두 보고자 할 경우에 LEFT OUTER JOIN 을 활용하여 결과를 보여줍니다
5. JOIN - SQL 문장 (RIGHT OUTER JOIN)
1 2 3 4 5 6 7 8 9 | SELECT A.ID ,A.NAME ,A.AMT ,B.CHECK_YN ,B.ID AS B_ID FROM TEST_TABLE_ONE A ,TEST_TABLE_TWO B WHERE A.ID(+)=B.ID |
1 2 3 4 5 6 7 8 | SELECT A.ID ,A.NAME ,A.AMT ,B.CHECK_YN ,B,ID AS B_ID FROM TEST_TABLE_ONE A RIGHT OUTER JOIN TEST_TABLE_TWO B ON A.ID=B.ID |
◈ 결과 테이블
ID | NAME | AMT | CHECK_YN | B_ID |
test1 | 테스트1 | 1000 | Y | |
test2 | 테스트2 | 2000 | Y | |
test3 | 테스트3 | 3000 |
| |
| test6 | |||
test7 | ||||
◈ 설명
위의 결과는 TEST_TABLE_ONE 과 TEST_TABLE_TWO을 JOIN 했을 경우 TEST_TABLE_TWO에 있는 데이터를 모두 보고자 할 경우에 RIGHT OUTER JOIN 을 활용하여 결과를 보여줍니다.
6. JOIN - SQL 문장 (FULL OUTER JOIN)
1 2 3 4 5 6 7 8 9 | SELECT A.ID ,A.NAME ,A.AMT ,B.CHECK_YN ,B.ID AS B_ID FROM TEST_TABLE_ONE A ,TEST_TABLE_TWO B WHERE A.ID(+)=B.ID(+) → 이 문장은 쓸 수 없음(X) |
1 2 3 4 5 6 7 8 | SELECT A.ID ,A.NAME ,A.AMT ,B.CHECK_YN ,B.ID AS B_ID FROM TEST_TABLE_ONE A FULL OUTER JOIN TEST_TABLE_TWO B ON A.ID=B.ID |
◈ 결과 테이블
ID | NAME | AMT | CHECK_YN | B_ID |
test1 | 테스트1 | 1000 | Y | |
test2 | 테스트2 | 2000 | Y | |
test3 | 테스트3 | 3000 |
| |
|
|
|
| test6 |
|
|
| test7 | |
test4 | 테스트4 | 4000 | ||
test5 | 테스트5 | 5000 |
|
◈ 설명
양쪽 테이블에 있는 데이터를 모두 보여줍니다
'[개발]프로그래밍 > sql' 카테고리의 다른 글
[oracle] IS NULL - NULL 처리 (0) | 2016.09.20 |
---|---|
[oracle] LIKE - 특정 문자를 포함한 검색 (0) | 2016.09.20 |
[oracle] IN , EXISTS - 값의 포함여부 체크 (0) | 2016.09.12 |
[mysql] CONCAT - 문자열을 하나로 이어줌 (0) | 2016.09.07 |
[mysql] GROUP_CONCAT - 구분자를 활용한 문자열 묶음 (0) | 2016.09.07 |
- Total
- Today
- Yesterday