kmu1989
50
2020-11-01 23:08:44
4
200

oracle left outer join 질문좀요


안녕하세요 조인한 테이블에서 1개의 데이터만 가져오고 싶은데 그게 잘안되네요 방법좀 알려주세요~


  SELECT s.STOCK_CODE , s.TRADING_TM 

  from STOCK_TRADING_HIS S

  LEFT OUTER JOIN STOCK_HOLDING H

  ON H.STOCK_CODE = S.STOCK_CODE

and rownum = 1

  where s.stock_code = '024110' ;



조인한 STOCK_HOLDING  에서 결과값을 1개만 얻고 싶은데 계속 2개가 나오네요
rownum = 1 로 해줬는데도 왜 2개가 나오는걸까요? 
TRADING_TM  으로 가장 최신 데이터 1개만 얻을려고 하는데 어떻게 해야 될까요?

0
  • 답변 4

  • 성능최적화계획
    312
    2020-11-02 09:12:11
    웨어절로 빼보셔요
  • j_dev_H
    47
    2020-11-02 09:48:54
    SELECT TOP 1 으로 가져올 수 있지 않나용?
  • C#린이
    2k
    2020-11-02 10:26:03

    rownum = 1 이라는 조건이

    STOCK_HOLDING 테이블의 outer join 조건으로

    가장 최신데이터 1개를 가지고 오는지 여부는

    보장할 수 없습니다.


    outer join 대상을 서브쿼리로 작성하셔야 합니다.

  • 파랭이
    203
    2020-11-02 10:48:05

    rownum자체가 데이터 가져와서 처리하는 것이라

    그냥은 JOIN문 내에서 내부 조건에는 적용안될꺼예요.

    서브쿼리로 where에서 적용하시고 이를 join하세요.

  • 로그인을 하시면 답변을 등록할 수 있습니다.