2013-04-09 5 views
0

phpMyAdmin에서 사용할 때 아래의 쿼리가 제대로 작동합니다. m.id 등을 가지고있을 때 CI 프레임 워크에서 어떻게해야하는지 모릅니다.MYSQL Query to Codeigniter Query

검색어 :

SELECT DISTINCT m.name, m.id, c.id, c.name 
FROM `default_ps_products` p 
INNER JOIN `default_ps_products_manufacturers` m ON p.manufacturer_id = m.id 
INNER JOIN `default_ps_product_x_cats` x ON p.id = x.product_id 
INNER JOIN `default_ps_products_categories` c ON x.category_id = c.id 

답변

2

여러 가지 방법이 있습니다.

예 1 :

$result = $this->db 
    ->select('m.name, m.id, c.id, c.name') 
    ->distinct() 
    ->join('default_ps_products_manufacturers m', 'p.manufacturer_id=m.id') 
    ->join('default_ps_product_x_cats x', 'p.id=x.product_id') 
    ->join('default_ps_products_categories c', 'x.category_id=c.id') 
    ->get('default_ps_products p') 
    ->result(); 

echo $this->db->last_query(); 

때때로 활성 기록이 원하는 쿼리를 생성 할 수 없습니다. 그래서 당신 스스로 그것을 쓸 수 있습니다.

예 2 : (?)이 두 번째 예에서

$query = "SELECT DISTINCT m.name, m.id, c.id, c.name 
      FROM `default_ps_products` p 
      INNER JOIN `default_ps_products_manufacturers` m ON p.manufacturer_id = m.id 
      INNER JOIN `default_ps_product_x_cats` x ON p.id = x.product_id 
      INNER JOIN `default_ps_products_categories` c ON x.category_id = c.id"; 

$result = $this->db 
    ->query($query) 
    ->result(); 

echo $this->db->last_query(); 

, DB : 쿼리()는 각각의 값이 $ 쿼리 내의 물음표를 대체 번째 매개 변수로 배열을 취할 수있다. 예를 들어 쿼리에 값을 추가해야한다고 가정 해 보겠습니다.

예 3

$query = "SELECT DISTINCT m.name, m.id, c.id, c.name 
      FROM `default_ps_products` p 
      INNER JOIN `default_ps_products_manufacturers` m ON p.manufacturer_id = m.id 
      INNER JOIN `default_ps_product_x_cats` x ON p.id = x.product_id 
      INNER JOIN `default_ps_products_categories` c ON x.category_id = c.id 
      WHERE c.id=?"; 

$result = $this->db 
    ->query($query, array(1)) 
    ->result(); 

echo $this->db->last_query();