2015-12-10 2 views
1

У меня есть внутреннее соединение запроса, как показано ниже,CodeIgniter внутреннее соединение не работает, как ожидалось

SELECT * FROM shop_offer so INNER JOIN shop s ON s.shop_id = so.shop_id INNER JOIN city c ON c.city_id = s.city_id INNER JOIN locality l ON l.locality_id = s.locality_id INNER JOIN category ca ON ca.category_id = s.category_id WHERE so.offer_discount >= 10 AND so.publish = 1

При выполнении вышеуказанного запроса в PHPMyAdmin, результат, показывающий только одну строку, как и ожидалось.

Но когда я попробовал этот запрос в codeigniter, результат показывал 3 строки. Мой код-код,

 $this->db->select('*'); 
     $this->db->from('shop_offer as so'); 
     $this->db->join('shop as s', 's.shop_id = so.shop_id'); 
     $this->db->join('city as c', 'c.city_id = s.city_id'); 
     $this->db->join('locality as l', 'l.locality_id = s.locality_id'); 
     $this->db->join('category as ca', 'ca.category_id = s.category_id'); 
     $this->db->where(array('so.offer_discount >=' => 10, 'so.publish' => 1)); 
     $query = $this->db->get(); 

В чем проблема с кодом codeigniter. Я новичок в codeigniter. Есть ли способ решить эту ошибку.

ответ

1

Вы также можете попробовать запустить запрос, как это,

$this->db->query("SELECT * FROM shop_offer so 
    INNER JOIN shop s ON s.shop_id = so.shop_id 
    INNER JOIN city c ON c.city_id = s.city_id 
    INNER JOIN locality l ON l.locality_id = s.locality_id 
    INNER JOIN category ca ON ca.category_id = s.category_id 
    WHERE so.offer_discount >= 10 AND so.publish = 1"); 
Смежные вопросы