尝试过的代码:
$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、内容、last_modified_date
问题:
系统的设计意味着在更新文档时,将使用相同的document_id和更新的内容创建实际的新记录。
现在我需要列表中显示的文档,但是如果它们是具有相同document_id的多个文档(基本上是文件的旧版本(,则只应显示最新版本。当前代码仅输出第一个版本,因此需要切换。
group_by是正确的方法吗?任何有一定经验的人都可以弄清楚为什么它没有按预期工作,或者我只是做错了?
$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)');
试一试(未经测试(。
$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();
未经测试