我有一张桌子,里面有各种各样的工作。结构是这样的:
id
job_id
rev
[other fields]
因此,每次编辑作业时,都会向数据库添加一个新行,它具有唯一的id,job_id与上次相同(因为作业相同但只是编辑)并且转数更大( 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字符串?
答案 0 :(得分:0)
几个想法。你的加入对另一张桌子的看法是什么(我怀疑连接可能会关闭)?并且可能需要order_by才能获得最新版本。