제목 | CI2 from절 subquery 관련 질문 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 듀언 | 작성시각 | 2022/10/28 10:36:45 |
|
|||
안녕하세요, ci2를 사용하고있는 주니어 개발자입니다.
현재 수행해야하는 작업중에, A 테이블과 B테이블을 join한 후, 이를 바탕으로 select를 하며 order by와 row_number()를 실행하고, 그 결과 테이블에서 다시 where을 사용해야하는 상황에 있습니다.
그래서 단순히
$this->db->select (*, row_number() over (order by `column_a` desc) as 'index'); $this->db->from (`A`); $this->db->join (B, A.idx = B.idx, INNER) ; $this->db->get(); $subQuery = $this -> db -> last_query(); $this->db->flush_cache(); 위와 같은 코드를 실행 이후, (get_compiled_select 는 ci2에 없습니다)
$this->db->select(*); $this->db->from ('('.$subQuery.') as TEMP'); $this->db->where('a_column like `%cdt`') 와 같은 상황으로 active record를 작성하고, last_query를 뽑아보면 from절에 기본적으로 괄호가 생성되어 syntax 에러가 발생합니다. 즉, ($subquery) as TEMP 라면 workbench에서 실행이 되는데 (($subquery) as TEMP) 가 삽입되어 실행이 안되는 것이죠. mysqli_driver에서 설정을 바꾸어 해결하는 방법도 생각해보았으나 이는 너무 brute-force한 방법이라 사용하고싶지는 않은데, 혹시 다른 방법이 생각나는 고수님들 계시면 조언 부탁드리겠습니다. |
|||
다음글 | hooks에서 모델호출 시 Call to undefin... (1) | ||
이전글 | admin에서 로그인시 hooks 순서 질문 (2) | ||
한대승(불의회상)
/
2022/10/28 10:57:56 /
추천
0
|
듀언
/
2022/10/28 11:24:33 /
추천
0
감사합니다. 아쉽게도 저희가 통쿼리 사용은 지양하고 있어서요..
|
한대승(불의회상)
/
2022/10/28 15:32:36 /
추천
0
아쉽네요.
|
그냥 아래처럼 SQL문을 만들어서 실행 시키세요.