Наличие номеров Проверьте SQL-запрос

Я разрабатываю систему бронирования отелей. Мои таблицы следующие:

номера:

id, room, room_type, hotel_id

Тип номера:

id, type, hotel_id

бронирование

id,room_id,type_id, hotel_id, checkin, checkout

Я пытаюсь составить форму доступности номеров, которая проверяет таблицу бронирования и получает все номера в соответствии с выбранным типом номера со статусом, т. Е. Номер свободен или нет в указанные даты.

Вот три условия для проверки:

checkin_date < booking table checking date

Или же

checkin_date > booking table checkout date

Или же

room_id (with hotel it and room type as specified) should not be available in booking table i.e it has never been booked.

Поэтому я разработал следующий запрос, но он не прошел:

SELECT * FROM rooms where room_type = '$room_types' & 'hotel_id' = '$hotel_ids' AND `id` IN (SELECT room_id FROM booking WHERE (`hotel_id`='$hotel_id' AND `room_type`='$room_types' AND ( `checkin` > '$checkout' OR `checkout` < '$checkin' ) ) ) or 'id' NOT IN (SELECT room_id FROM booking WHERE `hotel_id`='$hotel_id' AND `room_type`='$room_types' )

Вот

$checkin refers to checkin date selected by user.
$checkout refers to checkout date selected by user.
$hotel_id is hotel id.
$room_type is room type like deluxe etc.

Любой совет о том, как правильно это сделать?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …