Надеюсь, это поможет вам:
Либо так:
Сначала соберите свой идентификатор 10 продуктов и используйте их в вышеуказанном запросе с помощью where_in
$product_ids = $this->db->select('Id')->limit(10)->get(TBL_PRODUCT)->result_array();
/* to select most recent msg with product id and name do like this, correct
if product_name column is wrong*/
$select = 'msg.*,p.Id,p.product_name';
/*$select = 'msg.*';*/
$query = $this->db->select($select, FALSE)
->from(TBL_MESSAGES . ' as msg')
->join(TBL_PRODUCT . ' as p', 'msg.ProductId=p.Id')
->where_in('p.Id',$product_ids)
->order_by('msg.Id', 'DESC')
->get();
if ($query->num_rows() > 0)
{
return $query->result_array();
}
Или вы можете получить все идентификаторы продуктов и просмотреть их с помощью предложения where
, чтобы получить желаемый результат
/* to select most recent msg with product id and name do like this, correct
if product_name column is wrong*/
$select = 'msg.*,p.Id,p.product_name';
$product_ids = $this->db->select('Id')->get(TBL_PRODUCT)->result_array();
if ( !empty($product_ids))
{
foreach($product_ids as $pid)
{
$query = $this->db->select($select, FALSE)
->from(TBL_MESSAGES . ' as msg')
->join(TBL_PRODUCT . ' as p', 'msg.ProductId=p.Id')
->where('p.Id',$pid)
->order_by('msg.Id', 'DESC')
->get();
if ($query->num_rows() > 0)
{
$data[] = $query->result_array();
}
}
return $data;
}
Для более: https://www.codeigniter.com/user_guide/database/query_builder.html#looking-for-specific-data