2015-09-23 2 views
0

Вот мой Codeigniter QueryMysql запросов и обновление необходимо

$this->db->select('o.*,seo.price as seo_price,SUM(domain.price) as domain_price,SUM(bes.price) as bes_price, SUM(op.price) as payment_price'); 
    $this->db->from('order as o'); 
    $this->db->join("order_package_seo as seo", "seo.order_id = o.id", "left"); 
    $this->db->join("order_package_domain as domain", "domain.order_id = o.id", "left"); 
    $this->db->join("order_package_bespoke as bes", "bes.order_id = o.id", "left"); 
    $this->db->join("order_payment as op", "op.order_id = o.id", "left"); 
    $this->db->where("o.id" , $id); 
    $query = $this->db->get(); 
    return $query->row(); 

У меня есть 3 записей в таблице «order_package_beskope» и 1 в других все Я хочу, чтобы получить цену от всей таблицы по Order_ID является Мне нужно использовать group_by или любой другой метод, который вам нужен.

+0

ОК Так что же это возвращение .. –

+1

это возвращение все цены мультипликатор на 3. Цена доменного имени 123, но его возвращение 369. –

+1

Я могу объяснить больше, если вы можете помочь .. –

ответ

0

Изменить первое заявление, как этот

$this->db->select('o.*,seo.price as seo_price,domain.price ,SUM(bes.price) as bes_price, op.price as payment_price'); 
$this->db->from('order as o'); 
$this->db->join("order_package_seo as seo", "seo.order_id = o.id", "left"); 
$this->db->join("order_package_domain as domain", "domain.order_id = o.id", "left"); 
$this->db->join("order_package_bespoke as bes", "bes.order_id = o.id", "left"); 
$this->db->join("order_payment as op", "op.order_id = o.id", "left"); 
$this->db->where("o.id" , $id); 
$this->db->group_by("o.id"); 
$query = $this->db->get(); 
return $query->row(); 

Потому что, вы упомянули в таблице «order_package_beskope» имеет 3 записи, так только то, что поле таблицы «bes_price» нуждается в SUM. Все остальные таблицы имеют только одну запись, поэтому, если вы добавите SUM, она будет умножена на 3 (количество записей order_package_bespoke).

Так удалить SUM из других полей таблицы в SELECT, и добавьте группу по o.id

Смежные вопросы