【问题标题】:Get the newest revision of certain group in SQL + Codeigniter获取 SQL + Codeigniter 中某个组的最新版本
【发布时间】:2013-07-25 08:19:24
【问题描述】:

我有一张桌子,上面有不同类型的工作。结构是这样的:

id
job_id
rev
[other fields]

所以每次编辑作业时,都会在数据库中添加一个新行,它有一个唯一的 id,job_id 与上次相同(因为作业相同但只是编辑过),rev number 更大( 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 字符串?

【问题讨论】:

  • 我可能错了,但对于初学者,请尝试更改 select_maxgroup_by 的顺序。
  • 还是不行,其实结果是一样的:/
  • 这是 sql 的常见问题 - 请参阅 dev.mysql.com/doc/refman/5.0/en/…

标签: php sql codeigniter


【解决方案1】:

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

【讨论】:

  • 这种回复最好作为评论发布。为问题添加答案会显着降低其他人出现并回答问题的机会。
  • 如果我有代表添加评论我会这样做..但你会看到我没有达到 50 代表...我不能对此发表评论string...:) 可以对我发布的答案发表评论!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-27
  • 2015-03-15
  • 1970-01-01
  • 2021-04-25
  • 2018-07-03
  • 1970-01-01
  • 2018-04-06
相关资源
最近更新 更多