尝试过的代码:
$this->db->select('*');
$this->db->from('documents_table');
$this->db->order_by("last_modified_date", "desc");
$this->db->group_by('document_id');
$query = $this->db->get();
表格结构:
id,document_id,content,last_modified_date
问题:
系统的设计意味着在更新文档时,会使用相同的document_id和更新的内容创建实际的新记录。
现在我需要列表中显示的文档,但是如果它们是具有相同document_id的多个文档(基本上是文件的旧版本),则只应显示最新版本。当前代码仅输出第一个版本,因此需要切换。
group_by是正确的方法吗?任何有经验的人都可以解决为什么它不按预期工作,或者我只是做错了?
答案 0 :(得分:1)
$this->db->select('*');
$this->db->from('documents_table');
$this->db->order_by("last_modified_date", "desc");
$this->db->where('id IN (SELECT MAX(id) FROM documents_table GROUP BY document_id)');
试一试(未经测试)。
答案 1 :(得分:0)
$this->db->select('MAX(id) , document_id , content , last_modified_date');
$this->db->from('documents_table');
$this->db->order_by("last_modified_date", "desc");
$this->db->group_by('document_id');
$query = $this->db->get();
未测试