STAFF_V1
--------------------------------------
|ID|NAME |
|--|-------- |
|10|Sanders |
|20|Pernal |
|30|Marenghi |
---------------
STAFF_V2
+---------+
|ID|JOB |
|--|------|
|20|Sales |
|30|Clerk |
|30|Mgr |
|40|Sales |
|50|Mgr |
+---------+
다음과 같이 조인을 걸었을 때의 값입니다.
1.
SELECT *
FROM staff_v1 v1
LEFT OUTER JOIN
staff_v2 v2
ON v1.id = v2.id
AND v2.job <> 'Mgr'
ORDER BY v1.id
,v2.job;
결과값
====================
ID NAME ID JOB
-- -------- -- -----
10 Sanders - -
20 Pernal 20 Sales
30 Marenghi 30 Clerk
2.
SELECT *
FROM staff_v1 v1
LEFT OUTER JOIN
staff_v2 v2
ON v1.id = v2.id
WHERE v2.job <> 'Mgr'
ORDER BY v1.id
,v2.job;
결과값
ANSWER
====================
ID NAME ID JOB
-- -------- -- -----
20 Pernal 20 Sales
30 Marenghi 30 Clerk
==>보시는 바와 같이 1번과 2번의 결과값이 다르게 나왔는데
제가 보기에는 조인을 걸어주고 1번의 경우는 ON 다음에 AND로 조건값을 주고
2번의 경우는 ON 다음에 WHERE 절에서 조건값을 주었습니다.
그 차이점이 무엇인지 설명해 주시면 고맙겠습니다.
|