개발 Q&A

제목 안녕하세요,db쿼리 관련해서...
카테고리 DB
글쓴이 그동안 작성시각 2020/08/30 17:29:19
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 440   RSS
안녕하세요,몇시간동안 삽질하다가 문의 드립니다.

제가 쿼리하려는 조건은 두가지 인데요.

1.  특정 회원이 작성한 (mem_idx) 

2.  1번 조회된 것 중 estimate_basic_idx 컬럼의 값이 가장 큰 건 (참고.동일값 때문에 복수개 존재할수 있음) 

 

1번 조건은 아래 쿼리로  잘 조회 됩니다. 그런데 2번 조건도 같이 적용하기 위해  $this->db->select_max('estimate_basic_idx'); 이거를 넣어보려고 했는데 이렇게 저렇게 해봐도 안되네요;;  

    function remember_estimate_project($mem_idx)
    {
        $this->db->select('*');
        $this->db->from('estimate_project');
        $this->db->where('mem_idx', $mem_idx);       
        $this->db->order_by('term_start','desc');
        $query = $this->db->get();
        $result = $query->result();
        return $result;      
    }

 

 다음글 버츄얼호스트 서브도메인 설정이 안됩니다. (2)
 이전글 첫 ci4를 설치했는데 조금 이상 합니다. (2)

댓글

변종원(웅파) / 2020/08/31 08:23:05 / 추천 0

1. sql 문으로 작성해서 원하는 결과가 나오는지 보시고 

2. order_by 빼고 해보세요.

한대승(불의회상) / 2020/08/31 09:30:01 / 추천 0

count, max, min, avg 는 group by와 함께 사용하거나 컬럼을 하나만 지정해야 합니다.

그동안 / 2020/08/31 12:56:34 / 추천 0

안녕하십니까, 웅파님,불의회상님.

이렇게 저렇게 해보다가, 서브쿼리로 해야 할듯해서 아래와 같이 작성했는데, 문법이 틀린 부분이 있는지 잘 안되네요.

다른 부분은 문제 없어보이고, 이부분의 서브쿼리 부분이 제대로 작성이 된걸까요? 

$this->db->where( 'estimate_basic_idx', 'SELECT max(estimate_basic_idx) AS estimate_basic_idx FROM estimate_project' );

 

    function remember_estimate_project($mem_idx)
    {
        $this->db->select('*');
        $this->db->from('estimate_project');
        $this->db->where('mem_idx', $mem_idx); 
        $this->db->where( 'estimate_basic_idx', 'SELECT max(estimate_basic_idx) AS estimate_basic_idx FROM estimate_project' );
        $this->db->order_by('term_start','desc');
        $query = $this->db->get();                                                  //위 $this 조건들로 db쿼리해서 값 가져옴
        $result = $query->result();                                                 //배열(목록)로 넘기때는 result 사용
        return $result;
    }

 

 

 

변종원(웅파) / 2020/08/31 16:18:19 / 추천 0
액티브레코드 말고 그냥 구문으로 작성해보세요.
그동안 / 2020/08/31 17:21:12 / 추천 0
감사합니다. CI 묻고 답하기에서 해결되었습니다. 감사합니다.