我有很长一段时间试图制作一个SQL查询来检查两个日期之间是否有酒店房间,但是我无法让它工作(它显示MySQL上的错误)。似乎问题出在声明的第一部分。该语句检查不在"预订"中的可用房间ID。表。当我执行语句的第一部分(下面的代码)时,它显示一个空列(没有room-id,只有列名)编辑: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-图表 image-url:https://imgur.com/a/MQxeMgX
答案 0 :(得分:0)
也许您的日期过滤器应该来自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));