CI 묻고 답하기

제목 오라클 DB 쿼리 구문 관련 질문입니다.
글쓴이 뫄뫄잉뿌 작성시각 2015/12/08 09:49:16
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 13792   RSS
코드이그나이터에서 오라클 DB에 접근하는 쿼리를 작성할 때,
$this->db->select('*');
$this->db->from('test');
$this->db->order_by('name','desc');

이런식으로 깔끔하게 하고 싶은데,
오라클 쿼리중에서 복잡한?쿼리를 날릴때

현재 
function com_event_list($mcompany_id,$search_vo){
	
		$query = 
		"select
			  DISTINCT(bbs.EXH_ID),
			  ex.EXH_NM,
			  ex.EXH_TYPE,
			  TO_CHAR(ex.EXH_START_DT, 'YYYY-MM-DD') AS EXH_START_DT,
			  TO_CHAR(ex.EXH_END_DT, 'YYYY-MM-DD') AS EXH_END_DT
			from 
			  LETTNBBS bbs, 
			  T_EXHIBITION ex
			where 
			  BBS.MCOMPANY_ID = '".$mcompany_id."'
			  and bbs.BBS_ID IN ('BBSMSTR_BBBBBBBBBBBB','BBSMSTR_CCCCCCCCCCCC')
			  and bbs.USE_AT = 'Y'";
			  if(!empty($search_vo->exh_id)){
					$query .= "and bbs.EXH_ID = '".$search_vo->exh_id."'";
				}
				if(!empty($search_vo->search_year)){
					$query .= "and TO_CHAR(ex.EXH_START_DT, 'YYYY') = '".$search_vo->search_year."'";
				}
			  
			  $query .= "and bbs.EXH_ID = ex.EXH_ID	ORDER BY EXH_START_DT DESC";
		
		return $this->exhibit_db->query($query)->result();


이와같이 날렸었는데 이런 복잡한 오라클 쿼리를 맨 위처럼 바꾸는 방식이 있나요?
 다음글 세션 유지 질문 드립니다. (3)
 이전글 세션 재 질문 (4)

댓글

변종원(웅파) / 2015/12/08 09:55:22 / 추천 0
올리신 쿼리는  active record로 바꾸는데 아무 문제 없는 쿼리입니다.
뫄뫄잉뿌 / 2015/12/08 10:00:52 / 추천 0
그럼 서브쿼리가 많은 이런건 어떻게하나요??
function news_list($search_vo){
 
  $query =
  "SELECT * FROM ( SELECT rownum rn, TB.* FROM (
   SELECT
    a.NTT_ID, a.NTT_SJ,  a.NTT_CN, a.FRST_REGISTER_ID, NVL(b.USER_NM, a.NTCR_NM) as FRST_REGISTER_NM,
    TO_CHAR(a.FRST_REGIST_PNTTM, 'YYYY-MM-DD') as FRST_REGIST_PNTTM,
    a.RDCNT, a.PARNTSCTT_NO, a.ANSWER_AT, a.ANSWER_LC, a.USE_AT, a.ATCH_FILE_ID,
    a.BBS_ID, a.NTCE_BGNDE, a.NTCE_ENDDE
   FROM
    LETTNBBS a LEFT OUTER JOIN COMVNUSERMASTER b ON a.FRST_REGISTER_ID = b.ESNTL_ID 
   WHERE
    a.BBS_ID = 'BBSMSTR_AAAAAAAAAAAA' and a.USE_AT ='Y' ORDER BY a.SORT_ORDR DESC, NTT_NO ASC
   ) TB ) WHERE  rn  > ".$search_vo->first_index."
             AND  rn <= ".$search_vo->first_index." + ".$search_vo->record_count_per_page;
   
  return $this->exhibit_db->query($query)->result();
 
 }

CI는 처음이라 다른건 괜찬은데 쿼리쪽이 어렵네요 ㅠㅠ
답변감사합니다.
한대승(불의회상) / 2015/12/08 10:10:48 / 추천 0
서브쿼리로 되어 있는 부분만 SQL로 기술 하시면 됩니다.