【发布时间】:2013-05-06 07:35:51
【问题描述】:
我需要检查一段时间内(开始日期和结束日期)的可用酒店和可用房间数量。
我有一个表测试(id、日期、数量、hotel_id)。我需要在数量(例如数量> 2)和两个日期之间的日期(例如:测试表的日期字段的日期值大于 '2013-05-06 ' 并且结束日期小于 '2013-05-10')。
我试过这个查询:
select hotel_id
from test
where qty>2
and date between '2013-05-06' and '2013-05-10';
但是,另一个条件是在给定日期之间必须有所有日期。即日期字段应具有所有日期日期值:'2013-05-06'、'2013-05-07'、'2013-05-08'、'2013-05-09'、'2013-05-10' .如果缺少上述任何日期,则应返回空结果集。如果所有日期都可用 qty>2(let),那么它应该返回 hotel_ids 列表。
如何在单个 MySQL 查询中完成?
【问题讨论】:
-
可能重复 stackoverflow.com/a/16393694/1920232。刚刚回答了同样的问题。这是作业吗?
-
你做对了,有什么问题?如果您对
where子句中的between感到困惑,请查看MySQL BETWEEN Clasue -
@KishorSubedi,不,我做得不对。假设日期不包含“2013-05-07”,而只包含“2013-05-06”、“2013-05-08”、“2013-05-09”、“2013-05-10”。然后它应该返回空结果集。因为如果开始日期和结束日期之间有所有可用日期,我需要结果集(酒店 ID)。那么,如何检查开始日期和结束日期之间的所有日期,并在上面的示例中返回 qty>2 的酒店 id???
-
@peterm 不,这不是家庭作业。我也浏览了你的链接,但那个答案不是我需要的答案。你能帮我解决吗???
-
看到这个 [mysql-select-all-data-between-two-dates][1] [1]: stackoverflow.com/questions/1080207/…