Codeigniter: результат запроса без повторения для поля - PullRequest
0 голосов
/ 04 мая 2020

У меня есть этот запрос в моей модели:

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 два поля. Я бы сгруппировал ответ так, чтобы дата не повторялась дважды, чтобы он давал мне один и тот же результат для одного и того же доцента, с одной и той же датой, с разным временем начала и окончания.

Как можно Я делаю? Спасибо

1 Ответ

1 голос
/ 04 мая 2020

Я думаю, что вам нужно GROUP BY. Приведенный ниже запрос покажет данные только тогда, когда комбинация всех 4 (docent_id, date, start_at и end_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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...