Codeigniter:不重复字段的查询结果



我的模型中有这个查询:

public function getById(int $id): ?array
{
$query = $this->db->select(['id', 'docent_id', 'date', 'start_at', 'end_at'])
->where('docent_id', $id)
->where('delete_date is null')
->get('Agenda');
$res = $query->result();
return $res;
}

我的问题是在我的数据库中,我有类似的东西:

| id | docent_id | date       | start_at | end_at
| 1  |    1      | 2020-05-04 |   09:00  | 10:00
| 2  |    1      | 2020-05-04 |   10:00  | 11:00

因此,这个结果为相同的docent_id打印了两个字段。我会把答案分组,这样日期就不会重复两次,这样它就会给我一个单一的结果,对于同一个文档,相同的日期,不同的开始和结束时间。

我该怎么办?感谢

我认为您需要的是GROUP BY。只有当所有4个(docent_iddatestart_atend_at(的组合不同时,下面的查询才会显示数据。看看这是否对你有帮助。

$query = $this->db->select(['id', 'docent_id', 'date', 'start_at', 'end_at'])
->where('docent_id', $id)
->where('delete_date is null')
->group_by(array("docent_id", "date", "start_at", "end_at"))
->get('Agenda');
$res = $query->result();

相关内容

  • 没有找到相关文章

最新更新