ビデオテーブルからuserIdのリストを取得しようとしています。この表には、ユーザーにアップロードされるメディアファイルが含まれています。これは私のコードですCodeigniter group_byが正しく動作しない
$this->db->select("videos.user_id as userId");
$this->db->limit('10', $document['offset']);
$this->db->group_by('userId');
$this->db->order_by('id','desc');
$recentUploads = $this->db->get('videos')->result_array();
if (!empty($recentUploads))
{
foreach ($recentUploads as $record)
{
$totalPostMedia = $obj->totalPostMedia($record);
$record['totalPostMedia'] = $totalPostMedia;
$resData = $this->db->select("username, profileImage")->from('users')->where('id', $record['userId'])->get()->row_array();
$record['uploadBy'] = $resData['username'];
$record['profileImage'] = "http:...com/profileImage/".$resData['profileImage'];
$Mydata[] = $record;
}
}
結果getは、テーブルからuserIdsの一部が欠落しています。私は$this->db->distinct()
も試しました。それでも同じ結果が得られました。重複のない結果が得られる唯一の方法は、$this->db->order_by('id','desc');
を削除するか、desc
の代わりにasc
にすることです。しかし、私はテーブルから最新のレコードを取得したい。どうすればいい?何か間違っているのですか?どんな助けでも大変に感謝します。
最初に書くために働くために、このようになります - >ます$ this-> DB-> ORDER_BY( 'ID'、 'DESC'); これより $ this-> db-> group_by( 'userId'); –
それを試してみました。まだ運がない。 –
ここに結果をアップロードして見せることができます –