2016-07-13 15 views
0
$vendor=$this->db->query("SELECT code from `sources` where uniquevendor=1"); 
foreach($vendor->result() as $vendor_data) { 

    $data['queryItem']=$this->db->query("SELECT sourcing, `item_sku`, sum(quantity)as total FROM `item` WHERE `item_sku` like '$vendor_data->code%' AND quantity<0 group by `item_sku` order by total asc;"); 
} 

$venodor有18個供應商。但在$data['queryItem'] Like運算符的工作只能針對最後一個上一個供應商的名稱和返回值。爲什麼會這樣呢?SQL LIKE無法正常返回

+0

你在每次迭代中覆蓋'$ data ['queryItem']'的值嗎? –

+0

我該如何保持每一個價值? – jonm

+0

你正在使用哪些DBMS? –

回答

0

保持到當前的結構我想你需要的是這樣的:

$vendor=$this->db->query("SELECT code from `sources` where uniquevendor=1"); 
foreach($vendor->result() as $vendor_data) { 
    $data[$vendor_data->code]=$this->db->query("SELECT sourcing, `item_sku`, sum(quantity)as total FROM `item` WHERE `item_sku` like '$vendor_data->code%' AND quantity<0 group by `item_sku` order by total asc;"); 
} 
0

請給一個嘗試

select b.sourcing, b.item_sku, sum(b.quantity)as total from sources a left join item on a.code = b.item_sku 

我不知道你爲什麼不使用連接。