私はさまざまな種類の仕事のテーブルを持っています。構造は次のようになります。
id
job_id
rev
[other fields]
したがって、ジョブが編集されるたびに新しい行がデータベースに追加され、一意の ID が付けられ、job_id は前回と同じになり (ジョブは同じですが、編集されたばかりであるため)、rev 番号は大きくなります (1 -> 2)。
これらのジョブをテーブルに表示したいと思います.idはデータを取得して、job_idでグループ化され、最新のリビジョンが表示されるようにします。
例:
1 53kjA7 1 This is a job
2 Adf98A 1 Another job
3 53kjA7 2 This is a job edited
4 8123Ag 1 More jobs
5 Adf98A 2 Another job edited
テーブルには次のように表示されます。
3 53kjA7 2 This is a job edited
5 Adf98A 2 Another job edited
4 8123Ag 1 More jobs
私はcodeigniterとその組み込みのアクティブレコードを使用しています。次のように試しました:
$this->db->select()->from('jobs')->group_by('job_id')->select_max('rev');
しかし、結果は最新のリビジョン番号を持つグループ化されたジョブを示すテーブルですが、他のすべての情報は、次のように同じグループの別のジョブからのものです:
1 53kjA7 2 This is a job
2 Adf98A 2 Another job
4 8123Ag 1 More jobs
アクティブなレコードでこれを行う方法はありますか、それともカスタム SQL 文字列を作成する必要がありますか?