개발 Q&A

제목 코드이그나이터의 select from where 함수 쓰는게 더 좋은건가요?
카테고리 PHP
글쓴이 아리아리 작성시각 2018/08/14 16:59:13
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 12958   RSS

가독성을 올리기 위함인가요?

 

select("*") -> from("TB") -> get() -> result();

 

이렇게 하면 더 깔끔한가요?..

 

만약

SELECT
*
FROM TB_MATERIAL_INFO a
  , (SELECT ITEM_ID,COST FROM (SELECT ITEM_ID, COST FROM TB_MATERIAL_COST_INFO ORDER BY REGDT DESC) as Z GROUP BY ITEM_ID ) as b

WHERE a.ITEM_ID = b.ITEM_ID

 

이런 복잡한 쿼리를 저렇게 만든다고 하면

 

return $this->db->select('*')
                 ->from('TB_MATERIAL_INFO')
                 ->join('(SELECT ITEM_ID,COST FROM (SELECT ITEM_ID, COST, REGDT FROM TB_MATERIAL_COST_INFO ORDER                                                                                                  
                  BY REGDT DESC) as Z GROUP BY ITEM_ID) as b ','TB_MATERIAL_INFO.ITEM_ID = b.ITEM_ID')
                  ->get()->result_array();

이렇게 해야하잖아요?

 

join 부분을 더 쪼갤수 있을까요?

 

 

 

 

 다음글 mysql 쿼리 작성할때 FROM과 JOIN에 들어갈 ... (3)
 이전글 서버에서 ajax 처럼 api 접속해서 데이터 가져오는... (2)

댓글

한대승(불의회상) / 2018/08/14 17:53:30 / 추천 0

코드이그나이터에서 제공하는 쿼리 빌더는 서브쿼리를 지원하지 않습니다.

쿼리가 복잡한 경우에는 $this->db->query() 함수를 사용하세요.