У меня есть две таблицы, одна содержит резервирование для комнаты, а другая - «средняя» таблица для хранения дат, на которые зарезервирована комната (поскольку резервирование может иметь несколько непоследовательных дат).
Это выглядит примерно так:
Res_table:
id, room_id, owner_id
Res_table_mid:
id, res_id, date
Столбец res_id в res_table_mid ссылается на идентификатор res_table. Мне нужно получить дату начала и окончания бронирования.
Итак, запрос выглядит примерно так:
SELECT * FROM res_table a
LEFT JOIN (SELECT min(date) as start_date, res_id FROM res_table_mid) AS min ON a.id = min.res_id
LEFT JOIN (SELECT max(date) as end_date, res_id FROM res_table_mid) AS max ON a.id = max.res_id
Это работает, как и ожидалось, если только таблицы не пусты или нет результатов, в этом случае происходит ошибка с
#1048 - Column 'res_id' cannot be null
Есть ли способ написать это так, чтобы я получал нужные мне данные, но если нет результатов, то также нет ошибки?
Спасибо!