[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 |