간단한 아우터조인 질문 드립니다. 0 2 1,528

by 클라나드 [2014.04.16 16:33:23]


안녕하세요. 오랜만에 질문을 올립니다.

아우터 조인에 관한건데요

아래 쿼리 보시면
A 테이블에 연필이 100개가 있다는 데이터가있습니다.
B테이블에는 연필 과 지우개 라는 데이터가있습니다.
쿼리를 돌리면 연필 , 100개 가 나오지요

실행하였을때
연필 100개
지우개 0개
가 나오게 하려면 어떻게해야하나요?
(+) 요고 부치면 될줄알앗는데안되네요

고수님들의 답변 기다립니다. ㅠㅠ


SELECT A.NM, A.CNT
FROM(
      SELECT '연필' AS NM, 100 AS CNT FROM DUAL 
    ) A,
    (
      SELECT '연필' AS NM FROM DUAL
      UNION ALL
      SELECT '지우개' AS NM FROM DUAL   
    ) B
WHERE A.NM = B.NM
by 농부지기 [2014.04.16 16:40:53]

OUTER JOIN은   전체(연필, 지우개)가 존재 하는 테이블의 반대쪽 테이블 (+)
를 붙여야 되네요.
즉, 아래처럼 , 코드테이블이 있구요.
  코드별 실적이 테이블 있을 경우
 
  코드별 실적을 구하는 SQL 문장이네요.
  이럴경우 모든 코드가 다 조회 되어야 된다면 
  코드테이블이 아닌 실적 테이블에 (+)를 하는 거죠.

 
SELECT B.NM, NVL(A.CNT, 0)
FROM(
   SELECT '연필' AS NM, 100 AS CNT FROM DUAL 
  ) A,
  (
   SELECT '연필' AS NM FROM DUAL
   UNION ALL
   SELECT '지우개' AS NM FROM DUAL  
  ) B
WHERE A.NM(+) = B.NM ;

by 클라나드 [2014.04.16 17:20:46]
감사합니다.

덕분에 고민을 많이 하던문제를 해결하였으며

모르던 공부도 하게되었습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입