首页 > 解决方案 > MySQL查询酒店房间可用性

问题描述

我正在做关于酒店预订系统的最后一年大学项目。该系统允许各自的酒店经理将许多酒店添加到系统中。这里的主要问题是当用户想要根据他/她的要求搜索酒店房间时,我无法找到合适的解决方案。这里的情况是用户可以从酒店预订尽可能多的房间,搜索结果中可以有很多酒店列表。

如果酒店的房间和用户要求的房间数量在入住和退房日期内不匹配,则不会向用户显示酒店。房间分为单人床和双人床两种。用户一次只能预订一种床型。

酒店数据库 酒店数据库

房间数据库 房间数据库

预订数据库 预订数据库

预留房间数据库 预留房间数据库

用户将填写以下表格作为酒店间空房搜索的提前搜索。价格范围的查询可以忽略

对此的 MySQL 查询将不胜感激。

高级搜索表 高级搜索

我尝试了以下查询来获取可用的房间信息,但是这个查询只给出了酒店表中第一个hotelid 的输出,它的房间不在reservedrooms 表中,而且它也没有验证入住和退房日期。

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 + "')

标签: mysqldatabaserelational-database

解决方案


推荐阅读