Это будет решением, если вы строго ищете CodeIgniter query
, но если вы не против смешать его с обычными SQL запросами, ответ @ Vickel должен сделать дело.
//first get the data you want to ignore-
$not_in_arr = $this->db->select('product_id')->from('purchases')->get()->result();
where_in
и where_not_in
ожидают, что вы передадите индексированный массив в качестве второго параметра.
//get the data in indexed array format-
foreach($not_in_arr as $not){
$notin[] = $not->product_id;
}
$query = $this->db->select('*')->from('products')->where_not_in('id', $notin)->get()->result();
echo $this->db->last_query(); //returns- SELECT * FROM `products` WHERE `id` NOT IN('1', '2', '3')
Надеюсь, это вам поможет. :)