gpt4 book ai didi

mysql - 酒店预订系统 SQL : identify any room available in date range

转载 作者:可可西里 更新时间:2023-11-01 08:37:48 29 4
gpt4 key购买 nike

(以防这看起来很熟悉:我问了一个 different question similar to this one,但我只是注意到网站设计已经改变,现在所有者确实想要一种搜索​​任何房间的方法在一系列日期之间可用。所以这是一个新问题...)

我正在开发一个酒店预订系统,我需要找出在某个日期范围内有哪些房间可用。现有的“可用性”表架构很简单,列是:

room_id
date_occupied - a single day that is occupied (like '2011-01-01')

因此,例如,如果 6 号房间在 1 月 1 日至 1 月 5 日期间有人入住,则会将五行添加到可用性表中,每一行表示房间有人入住。

我试图弄清楚查询以查找在开始日期和结束日期之间有哪些房间可用(同时还过滤一些其他参数,如禁烟、床尺寸等)......在伪 SQL 中有点像:

SELECT (a list of room IDs) FROM rooms, availability
WHERE rooms.nonsmoking = 1
AND rooms.singlebed = 1
AND nothing between start_date and end_date is in availability.date_occupied

与我的其他问题一样,我有点难以确定确切的查询以及如何以最有效的方式连接表。感谢您的帮助。

最佳答案

如果我正确理解了您的数据库结构,您需要在可用房间中找到没有对应行的一行。

SELECT r.* 
FROM rooms r
LEFT JOIN availability a ON (r.id = a.room_id
AND a.date_occupied BETWEEN :start_date AND :end_date)
WHERE a.id IS NULL

关于mysql - 酒店预订系统 SQL : identify any room available in date range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5615225/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com