지금 테이블 구조입니다.
여기 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 |
-- 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 ;