조건문을 어떻게 해야할까요..? 0 2 137

by 실베 [SQL Query] [2019.05.15 08:43:45]


SELECT                                     
 x.item_no,
 x.description,
 y.production,
 y.safety,
 y.quality,
 y.preventive,
 y.reserve,
 y.total,
 y.grade,
 y.cycle,
 y.mng_dept,
 y.check_no,
 '',
 y.ass_year,
 y.remark
FROM EQ0101M x, EQ0401M y                       
WHERE y.equip_no (+)=x.equip_no

 

 

다음과같이 아우터 조인한 쿼리문이 있습니다.

그런데 여기서 EQ0401M 테이블에 2건의 데이터가 있다고 가정하고...

저는 EQ0401M의 ass_year 가 2019 인 건을 아우터 조인으로 조회하고싶습니다.

하지만 and y.ass_year='2019' 이런식으로 조건문을 넣어버리면 당연히 데이터가 1건만 조회가 되어버리죠...

설명이 좀 어려운것같은데... 저는   EQ0101M x 의 테이블 row 건수대로만 조회하고싶습니다. 

x의 건수가 100건이면 100건을 보여주되 y의 데이터만 땡겨오는 식으로요.

그렇다고 이너조인을 여러개 덕지덕지 붙이는게 싫어서 아우터조인을 활용해서

쿼리를 짜려고 하는중이구요...

 

어떻게 조건문을 넣어야 할까요?

by 마농 [2019.05.15 09:21:01]
-- 1. Oracle 의 (+) 를 이용한 아우터 조인
SELECT *
  FROM eq0101m x
     , eq0401m y
 WHERE y.equip_no(+) = x.equip_no
   AND y.ass_year(+) = '2019'
;
-- 2. ANSI 표준 아우터 조인
SELECT *
  FROM eq0101m x
  LEFT OUTER JOIN eq0401m y
    ON y.equip_no = x.equip_no
   AND y.ass_year = '2019'
;

 


by 실베 [2019.05.15 09:22:39]

매번 감사드립니다..

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