티스토리 뷰


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 문장 (일반적인 문장)

◈ 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


◈ 결과 테이블


ID

NAME

AMT

CHECK_YN

test1

테스트1

1000

Y

test2

테스트2

2000

Y

test3

테스트3

3000



4. JOIN - SQL 문장 (LEFT OUTER 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(+)



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)

◈ SQL

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)

◈ SQL

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 

 

 



◈ 설명


양쪽 테이블에 있는 데이터를 모두 보여줍니다




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday