在SQL+Codeigniter中获取某个组的最新版本


Get the newest revision of certain group in SQL + Codeigniter

我有一个包含不同类型作业的表。结构如下:

id
job_id
rev
[other fields]

因此,每次编辑作业时,都会向数据库中添加一行新行,它有一个唯一的id,job_id与上次相同(因为作业相同,但刚刚编辑),版本号更大(1->2)。

现在我想在一个表中显示这些作业,我想获取数据,以便显示其与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

我使用代码点火器和它内置的活动记录,我试过这样做:

$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字符串?

几个想法。在另一张表中,您的联接是什么样子的(我怀疑联接可能已关闭)?可能需要order_by才能获得最新修订。