Проверка доступной комнаты с использованием MySql

Все. У меня есть проблема с моим заданием о бронировании гостиницы в Интернете, что моя проблема с трудностью проверить доступный номер. Поэтому у меня много таблиц:

tbRoom(RoomID,RoomName,...) tbReservation(ResID,ResDate,....) tbReservationDetail(ResID,RoomID,ArrvialDate,DepartureDate,....) 

Я хочу получить комнату, доступную между двумя датами.

так, как я это делаю? Или мне нужно создать больше таблицы?

Пожалуйста, помогите мне, спасибо за помощь ….

Related of "Проверка доступной комнаты с использованием MySql"

Вы можете выбрать зарезервированные комнаты и инвертировать:

 SELECT * FROM tbRoom WHERE RoomID NOT IN (SELECT RoomID FROM tbReservationDetail WHERE ArrvialDate < yourDate AND DepartureDate > yourDate) 

Вы можете достичь своего результата, используя указанные выше 3 таблицы. но вам нужно изменить только то, что вам нужно использовать RoomID в таблице tbReservation .

rbRoom -> хранить отдельные комнаты
tbReservation -> когда зарезервирована комната, в этой таблице будет храниться идентификатор RoomID и идентификатор резервирования. tbReservationDetail -> хранит другие данные о приеме date, DepartureDate и т. д.

затем выполните следующий запрос

  SELECT * FROM tbRoom WHERE RoomID NOT IN (SELECT RoomID FROM tbReservation tr,tbReservationDetail td WHERE td.ArrvialDate < yourDate AND td.DepartureDate > yourDate and tr.RoomID=td.RoomID)