当前位置: 首页 > 面试题库 >

mysql酒店客房空房情况

郏扬
2023-03-14
问题内容

我有如下所示的ind Mysql可用性表:

id
room_id int(11)
avail_date date

每个房间的每个可用日期都有一行。可能存在间隙,例如,房间1可能有8月1,2,3,5,6,13,14,15的条目,隔天不可用。

我需要查询以找到room_ids列表,其中在日期范围内每天都有可用的空间。

换句话说,获取room_id列表,其中在开始日期和结束日期之间的每个日期都有每个房间的条目。


问题答案:

您想要这样的东西:

select room_id
from availability a
where avail_date between $start and $end
group by room_id
having count(*) = datediff($end, $start) + 1;

having子句将计算该时间段内的行数,以查看其是否与您需要的天数匹配。这是“包容性”逻辑,因此,如果$start = $end,则假定您需要该日期的房间。



 类似资料:
  • 我看过很多类似的问题,但还没能让它为我所用。我正在创建一个酒店预订系统,我希望列出在请求的预订日期至少有一个房间可用的酒店。 这是我到目前为止提出的问题 我是MySQL的新手,这真的失控了。这个想法是计算酒店的房间总数,减去给定日期范围内预订的房间总数。我能得到一些帮助吗? 子查询 它自己就能很好地工作,但这个不行。

  • 假设我得到一个作为(签入,签出)传入的未排序元组列表,我需要返回所需的最小房间数,以避免冲突。到目前为止,我想: 排序需要nlogn运行时间(n),这相当于O(nlgn),我能做得更好吗?我想我可能有我没有处理过的角落案件,但我想不出有什么。 这是一个面试问题。有什么帮助吗?

  • 我在Delphi2010(TADOQuery)中使用ADO数据库。 目的是找到可用的房间,并显示一家小旅馆的房间价格。 房间(_R) t_typeroom t_trans 目前,我使用下面的查询来显示房间价格。 并设法显示:(在Delphi2010的ADOQuery1和DBGrid1中) 我想做的是如何显示t_trans内尚未预订或未签入的代码室?(具体日期) 也许像这样(使用运算符): 问题是如

  • 问题内容: 我的项目中有一种情况,如下所示。 在检查可用房间时 第一个查询从满足日期范围的预订表中检索房间号列表 类似地,第二个从餐桌预订上做同样的事情 最后一个查询使用上面两个查询提供的列表,并获取不在生成的列表中的房间列表。 可以在2010年10月8日/ 2010年8月15日正常工作 在20-08-2010 / 25-08-2010可以正常工作 当我给出10到15之间的日期时,它对于20到25

  • 问题内容: 我正在研究nodejs / socket.io的实时聊天,并且需要一些有关实施会议室的建议。 使用名称空间或使用房间功能来完全隔离颤抖的对方,哪个更好? 房间和名称空间之间真正的技术区别是什么? 资源使用方面有区别吗? 问题答案: 这是名称空间和房间 的共同点 (socket.io v0.9.8-请注意,v1.0涉及完整的重写,因此情况可能有所更改): 命名空间(io.of(’/ ns

  • 在许多应用中,有必要将用户划分为可以一并处理的几个子集。最好的例子是,一个包含多个房间的聊天应用,当用户收到他所在的房间的消息,而不会收到其他人所在房间的消息。Flask-SocketIO支持通过join_room()和leave_room()函数来支持房间的概念: from flask_socketio import join_room, leave_room @socketio.on('j