mysql - 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 + "')
解决方案
推荐阅读
- flutter - Flutter - 如何使用命名路由实现底部导航栏?
- python - 为什么我的静态文本出现在默认位置(wxPython Phoenix)?
- azure-data-catalog - 如何通过 REST API 为 Azure 数据目录资产设置友好名称?
- regex - Apache 重写,包括查询字符串操作
- amazon-web-services - 我们可以在无服务器架构上部署 QlikSense 吗?
- asp.net - 如何解决 ASP.NET MVC 和 sql server 2019 中系统找不到文件指定错误
- java - 从 Java Spring Boot 中的 Principal 中提取数据
- lua - Lua 表被覆盖
- java - 使用真实设备在颤振中调试第一个应用程序时出错
- c++ - TBB 并行管道:过滤器时序不一致