초보입니다.. 쿼리조언 좀 구해봅니다. 0 2 187

by 브레드78 [Oracle 기초] [2022.01.10 10:17:52]


 지금 테이블 구조입니다. 

여기 3개의 테이블의 컬럼을 다 ㄱㅏ지고 오는쿼리

select * from images
                  join rooms r1 on r1.r_no = images.i_rno
                  join house h on h.gh_no = r1.r_ghno
    WHERE gh_no=15;

 

하면 이러한 값이 나오는데(맨 밑에 사진 참고)

I_RNO 나 R_NO 가 값이 같은데(값이같다면) 여기서 I_NO 의 값이 작은거한개만 나오게 하고싶습니다. 

 

원하는 결과값

I_NO I_RNO R_NO R_GHNO GH_HNO R_NAME
48 43

43

15 18 강릉101
49 44 44 15 18 강릉102
50 45 45 15 18 강릉103

 

 

 

 

 

by 마농 [2022.01.10 10:37:05]
-- Select * 로 조회하지 하지 마시고. 꼭 필요한 항목만 사용하세요.
SELECT *
  FROM (SELECT h.gh_no
             , h.gh_nm
             , r.r_no
             , r.r_name
             , i.i_no
             , i.i_name
             , ROW_NUMBER() OVER(PARTITION BY h.gh_no, r.r_no ORDER BY i.i_no) rn
          FROM images i
          JOIN rooms r ON r.r_no  = i.i_rno
          JOIN house h ON h.gh_no = r.r_ghno
         WHERE h.gh_no = 15
        ) a
 WHERE rn = 1
;

 


by 브레드78 [2022.01.10 10:50:08]

아 이렇게 하면 되는군요ㅠㅠ너무 감사합니다 !! 

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