Получить пары зарезервированных дат в MySQL - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь получить список резервирований в парах из моей базы данных.

Я могу получить список времени начала и окончания, объединенных вместе, но начало отдельно от времени окончания.

Вот мой запрос:

SELECT res.room_id, GROUP_CONCAT(res.start) as start, GROUP_CONCAT(res.end) as end
    FROM
      hotel h
      INNER JOIN reservations res ON res.hotel_id = h.hotel_id
      INNER JOIN rooms r ON r.room_id = res.room_id
    GROUP BY res.room_id

Результат, который я хочу:

room_id | reserved
1       | 2019-01-01 01:00:00-2019-01-01 02:00:00, 2019-01-01 05:00:00-2019-01-01 07:00:00

Вот моя связанная схема:

Отель:

hotel_id | hotel_name

Бронирование:

res_id | hotel_id | room_id | res_start | res_end | res_status

Номера:

room_id | hotel_id | room_name | room_number

1 Ответ

0 голосов
/ 02 января 2019

Использовать несколько аргументов для group_concat().

SELECT res.room_id,
       group_concat(res.start, '-', res.end) reserved
       FROM hotel h
            INNER JOIN reservations res
                       ON res.hotel_id = h.hotel_id
            INNER JOIN rooms r
                       ON r.room_id = res.room_id
       GROUP BY res.room_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...