CI 묻고 답하기

제목 액티브 레코드로 서브쿼리 적용.
글쓴이 수야디벨 작성시각 2013/07/24 15:24:34
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 24133   RSS

안녕하세요.

서브쿼리라는게 있다는걸 알고나서

서브쿼리에 대해서 학습하고 이를 액티브 레코드로 적용해보려고 하는데요

원래 예제 소스는

// Generate the subquery
$this->db->select('count(*)');
$this->db->from('users');
 
// Render the subquery to a string
$subQuery = $this->db->_compile_select();
 
// Reset active record
$this->db->_reset_select();
 
// Generate the primary query and include the subquery
$this->db->select('users.id as userId, users.fullname as userName');
$this->db->select("($subQuery) as userCount");
$this->db->where('users.status', 'active'); //예제소스는 여기까지 나와있는데
 
//이 아래코드같은 부분이 생략되어있는거 맞죠? where절로 끝나면 안되지 않나요?
$data = $this->db->get('myTable');
 
이렇게 되어 있는데

저 소스를 제 DB 정보에 맞게 이름을 다시 수정하고 하면,

크롬에서 서버 오류라고 에러가 나와요!

음 .. 분명히 제 DB 테이블 이름에 맞게 수정해줬는데 ...

그래서 전체가 아닌

아래처럼만 적어서 해봤는데오 오류가 나네요 .

// Generate the subquery
$this->db->select('count(*)');
$this->db->from('users');
 
// Render the subquery to a string
$subQuery = $this->db->_compile_select();
 
왜 그런걸까요?(이 부분만 지워주면 정상적으로 페이지가 뜨는걸 보니, 이 코드에 문제가 있는거 같아요)


(편의상 예제소스 테이블명을 그대로 옮겼는데, 테이블이나 DB명은 제꺼로 제대로 적었다고 가정합니다!)
 다음글 anchor_popup 팝업창에 이름 주기 (1)
 이전글 글쓰기와 글수정 관련 질문.. ㅠ (5)

댓글

변종원(웅파) / 2013/07/24 15:33:47 / 추천 0
아마 예전 자료를 검색하신거 같네요. 

요즘 자료로 찾아보면 아마 안될겁니다. (기억이 가물가물)

https://github.com/NTICompass/CodeIgniter-Subqueries 요넘 한번 이용해보시구요.

전 복잡한 쿼리는 AR 안쓰고 그냥 기술해서 작업합니다.

특히나 여러 db를 쓰는경우엔 더욱 더!!

여러 db를 쓰면 default db 말고는 프로파일러에 안나옵니다. ar로 작성하면 쿼리를 볼수가 없다는.... ㅋㅋ
수야디벨 / 2013/07/24 16:04:13 / 추천 0
 웅파 //

웅파님 말씀대로 그냥 속편하게 기술해서 사용해야겠어요 ㅎㅎ

감사합니다 ~ㅎ