by 빠쿄 ANSI OUTER JOIN [2009.08.21 09:29:33]
위 쿼리는 일반 아우터 조인이라 LOT_ID(+) 를 썼고요
아래 있는 쿼리는 책에서 본대로 FROM 부분에 LEFT OUTER JOIN 을 추가하고 WHERE 을 ON 으로 바꿨어요
그리고 (+) 부분을 없앴습니다.
그런데 결과는 완전 딴판 이네요;;아흐.....
LEFT OUTER JOIN 을 쓰는 부분에서 WHERE 절을 ON 으로 고치면서 실수를 한것 같은데
뭐가 문제인지좀 알려주시면 정말 감사하겠습니다.
SELECT B.AGING_TIME,B.AGING_END_TIME,B.LIFE_END_TIME, A.*
FROM CWIPMATAGI B, MWIPLOTSTS A WHERE A.MAT_ID IN
(SELECT MAT_ID FROM MWIPMATDEF WHERE MAT_TYPE IN
(SELECT KEY_1 FROM MGCMTBLDAT WHERE FACTORY='HMKA1' AND TABLE_NAME='MATERIAL_TYPE' AND DATA_2='Y'))
AND A.LOT_ID = B.LOT_ID(+) ORDER BY A.LOT_ID;
--------------------------------------------------------------------------------------------------------------------
SELECT B.AGING_TIME,B.AGING_END_TIME,B.LIFE_END_TIME, A.*
FROM MWIPLOTSTS A LEFT OUTER JOIN CWIPMATAGI B ON A.MAT_ID IN
(SELECT MAT_ID FROM MWIPMATDEF WHERE MAT_TYPE IN
(SELECT KEY_1 FROM MGCMTBLDAT WHERE FACTORY='HMKA1' AND TABLE_NAME='MATERIAL_TYPE' AND DATA_2='Y'))
AND A.LOT_ID = B.LOT_ID;