не в заявлении не работает (бронирование) - PullRequest
0 голосов
/ 03 мая 2018

Я долго пытался сделать SQL-запрос для проверки, доступен ли гостиничный номер между двумя датами, но я не могу заставить его работать (это показывает ошибки на MySQL). Кажется, что проблема заключается в первой части утверждения. Оператор проверяет доступные идентификаторы номеров, которых нет в «забронированной» таблице. Когда я выполняю первую часть оператора (код ниже), он показывает пустой столбец (без идентификаторов комнаты, только имя столбца) edit: Mysql не обновил таблицу, эта часть проблемы не устранена

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

    SELECT rom_id  
FROM
seka2804_hotelbestilling.rom
where
 rom_id  not in (
                     SELECT * FROM seka2804_hotelbestilling.bestilit_rom;
);

Это весь запрос

SELECT rom_id 
                    FROM seka2804_hotelbestilling.rom where romtype_id=$type-rom
                    AND rom_id  NOT IN 
                    (
                    select rom_id
                    from seka2804_hotelbestilling.bestilit_rom 
                    where (innsjekk >= @start and innsjekk < @end)
                    or (utsjekk >= @start and utsjekk < @end))

ER- диаграмма URL-адрес изображения: https://imgur.com/a/MQxeMgX

1 Ответ

0 голосов
/ 03 мая 2018

Возможно, ваш дата фильтр должен идти от outer query, а не от subquery

SELECT rm.rom_id  
FROM seka2804_hotelbestilling.rom rm
WHERE NOT EXISTS (SELECT 1 FROM seka2804_hotelbestilling.bestilit_rom 
                  WHERE rom_id = rm.rom_id) AND
      ((innsjekk >= @start and innsjekk < @end) OR
       (utsjekk >= @start and utsjekk < @end));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...