SQL LIKE没有正确返回

$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 has 18 vendor .But in the $data['queryItem'] Like Operator is working for only the last vendor name and return value only for last one . Why this happening ??

Keeping to your current structure I assume you need something like this:

$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;");
}

Please give a try

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

I don't know why you not using join.