login register Sysop! about ME  

2017년 08월 11일 14시 42분 00초,     조회수 : 312
  제목 : 첨부파일2개 있는 경우에 페이징 어떻게 처리하시나요??
SEQ : 163895 글쓴이 : bugwiwang74

작성 포맷 : TEXT 모드, 자동 줄바꿈 사용안함

test_table

idx   title   ...
1      a
2      b
3      c

test_table_File (첨부파일테이블)

idx    sub_idx   title
1        1           a의 첨부파일1
1        2           a의첨부파일2
2        3           b의첨부파일1
2        4           b의 첨부파일2
3        5           c의 첨부파일1

이런식의 테이블이 있을때..

페이징 시에는 첨부파일1개만 보여도 되어서 

아래의 페이징쿼리에 group by를 추가했더니  안되더라구요 

-- 
select * from 
	   (
	   	   select 
	   	   ROW_NUMBER() OVER
	   	   	   (
	   	   	   	   order by a.idx desc
	   	   	   )
	   	   as rowNo, a.idx, a.bstep, a.CrtDT, a.re, a.title, a.email,  b.AfterName  from 
	   	   	   	   	   	   
	   	   	   test_table a inner join  test_table_File  b on a.idx=b.idx 
	   	   	   	   
	   	   where 
	   	   (
	   	   	   (
	   	   	   	   ('title'=@strSEARCH and title like +'%' + @strKEY +'%' ) or ('content'= @strSEARCH and name like +'%' + @strKEY +'%') 
	   	   	   ) or (''= @strKEY)
	   	   ) and NoticeOption<>'Y'
	   )

	   as a 

	   where rowNo > 0  and rowNo 11;

그래서 이렇게

select  * from 
	   (
	   	   select 
	   	   ROW_NUMBER() OVER
	   	   	   (
	   	   	   	   order by idx desc
	   	   	   )
	   	   as rowNo, idx, bstep, CrtDT, re, title, email  from 
	   	   	   	   	   	   
	   	   	   test_table
	   	   	   	   
	   	   where  NoticeOption<>'Y'
	   )

	   as a

	   where rowNo > 1 and rowNo <11  ;

	   
select  * from 	   test_table_File group by idx

두개로 나누고 이중 for 문으로 페이징처리를 하긴 했는데....

ㅠㅠ 이런식보다 더 좋은 방법이 분명히 있을꺼같아서 고수님들께 여쭤 봅니다. ㅠㅠ
	   	   	   	   
	   

  topwood
  2017-08-11(15:45)
test_table_File 테이블에 순번 필드 추가해서 test_table a inner join test_table_File b on a.idx=b.idx and b.[순번]=1
첨부파일이 없을 수도 있으니 left join 으로 처리. 이정도면 될듯 하는데요.
아니면 test_table as a left join (Select idx, AfterName from test_table_File as b1 inner join (Select min(sub_idx) as
sub_idx FROM test_table_File group by idx) as b2 On a.sub_idx=b.sub_idx) as b on a.idx=b.idx

  bugwiwang74
  2017-08-11(16:09)
캐릭 이미지
적용해 보았는데 as 부분에서 오류가 뜨네요 ㅠㅠ

답변 감사합니다. ㅠㅠㅠ

  topwood
  2017-08-11(16:37)
test_table as a left join (Select idx, AfterName from test_table_File as b1 inner join (Select min(sub_idx) as
sub_idx FROM test_table_File group by idx) as b2 On b1.sub_idx=b2.sub_idx) as b on a.idx=b.idx

  bugwiwang74
  2017-08-11(16:43)
캐릭 이미지
와우 ㅠㅠㅠㅠㅠㅠㅠ

정말 감사합니다 ㅠㅠㅠㅠㅠ

ㅠㅠㅠㅠㅠㅠㅠㅠ
ㅠㅠㅠㅠㅠㅠㅠㅠ



제목 작성자 날짜 조회
첨부파일2개 있는 경우에 페이징 어떻게 처리하시나요?? (4) bugwiwang74 2017-08-11 312

 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : NeoDEEX
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})