Join 및 Union 기본 개념

Tips | 2012. 7. 4. 11:48
Posted by 아주 오래된 미래

[SQL 작성 요령]
1. 중심축으로 삼을 테이블을 선정한다.
2. 건수를 기록한다.
3. 가로로 정보를 추가하는 경우 JOIN을 세로로 정보를 추가하는 경우는 UNION을 사용한다.
4. 건수를 조회하여 확인한다.

[[ 예제 테이블 ]]

T1 T2
C11 C12 C21 C22
A 1 E 11
B 2 F 12
C 3 G 13
D 4
E 5
F 6

INNER JOIN (건수의 손실을 주의할 것)
SQL>>
SELECT T1.C11, T1.C12, T2.C22
  FROM T1
 INNER JOIN T2
         ON T1.C11 = T2.C21
RESULT>>
C11 C12 C22
E 5 11
F 6 12

LEFT OUTER JOIN (의도치 않은 Null의 발생, 건수의 증가를 주의할 것)
SQL>>
SELECT T1.C11, T1.C12, T2.C22
  FROM T1
  LEFT OUTER JOIN T2
         ON T1.C11 = T2.C21
RESULT>>
C11 C12 C22
A 1 Null
B 2 Null
C 3 Null
D 4 Null
E 5 11
F 6 12

RIGHT OUTER JOIN (가급적 Left outer join으로 사용할 것을 고려한다.)
SQL>>
SELECT T1.C11, T1.C12, T2.C21, T2.C22
  FROM T1
  FULL OUTER JOIN T2
         ON T1.C11 = T2.C21
RESULT>>
C11 C12 C21 C22
A 1 Null Null
B 2 Null Null
C 3 Null Null
D 4 Null Null
E 5 E 11
F 6 F 12
Null Null G 13

UNION (중복이 제거된다. 정렬이 일어나므로 속도의 저하가 있을 수 있다.)
SQL>>
SELECT C11, C12
  FROM T1
UNION
SELECT C21, C22
  FROM T2
RESULT>>
C11 C12
A 1
B 2
C 3
D 4
E 5
F 6
G 13

UNION ALL
SQL>>
SELECT C11, C12
  FROM T1
UNION ALL
SELECT C21, C22
  FROM T2
RESULT>>
C11 C12
A 1
B 2
C 3
D 4
E 5
F 6
E 11
F 12
G 13

'Tips' 카테고리의 다른 글

[맥킨지]차트의 기술 요약  (0) 2012.10.15
[사람을 관리한다는 것은 어렵지만..]  (0) 2012.08.16
VBA-Sample  (1) 2011.07.11
 
블로그 이미지

아주 오래된 미래

카테고리

분류 전체보기 (7)
비공개 (0)
Mobile (2)
OpenSource (0)
Tips (4)
중얼중얼 (1)