Я делаю последний проект колледжа по системе бронирования отелей.Система позволяет добавлять в систему многие отели соответствующими менеджерами отелей.Основная проблема здесь возникает, когда пользователь хочет найти номер в отеле согласно его / ее требованию, и я не могу найти правильное решение для этого.Ситуация здесь такова, что пользователь может зарезервировать столько номеров, сколько необходимо от отеля, и в результатах поиска может быть много отелей.
Пользователь не будет отображаться в отеле, если номер отеля и требуемый номер пользователя не соответствуют номерам в период регистрации заезда и отъезда.Номер делится на два типа: односпальная и двуспальная кровать.Пользователь может забронировать только один тип кроватей за один раз.
База данных отелей ![Hotel database](https://i.stack.imgur.com/ElY7R.png)
База данных номеров ![Room Database](https://i.stack.imgur.com/UgNtg.png)
База данных бронирования ![Reservation Database](https://i.stack.imgur.com/FfL2m.png)
База данных зарезервированных номеров ![Reservedrooms Database](https://i.stack.imgur.com/E5qjH.png)
Пользователь заполняет следующую форму в качестве предварительного поиска доступности номерапоиск среди отелей.Запросом ценового диапазона можно пренебречь
Запрос MySQL для этого действительно будет оценен.
Форма расширенного поиска ![Advance Search](https://i.stack.imgur.com/NsJCp.png)
У меня естьпопробовал следующий запрос, чтобы получить доступную информацию о номере, но этот запрос дает только вывод первого идентификатора отеля из таблицы отелей, номер которого отсутствует в таблице зарезервированных номеров, а также не проверяет дату заезда и выезда.
sqlDate1 - дата регистрации, отформатированная в формате sql, а sqlDate2 - дата извлечения, отформатированная в формате sql.
SELECT *
FROM ROOM
WHERE ROOM.ROOMNO NOT IN
(SELECT RESERVEDROOMS.ROOMNO
FROM RESERVEDROOMS
JOIN RESERVATION
ON RESERVEDROOMS.RESERVATIONID = RESERVATION.RESERVATIONID
WHERE RESERVATION.CHECKINDATE NOT BETWEEN '" + sqlDate1 + "' AND '" + sqlDate2 + "')