php - 检索预订系统用户的唯一酒店 ID

标签 php mysql

我有一个与 sql 相关的问题。我需要为下面描述的表编写一个复杂的查询

id  date        quantity    roomtypeid  hotelid

用户将使用入住和退房日期搜索酒店,并通过搜索查询指定房间数量(数量),所以我需要做的是从上表中获取酒店 ID,其中包含入住时可用的最小房间数量查看日期。

1   04-01-2013  3   4   10
2   04-02-2013  3   4   10
3   04-03-2013  3   4   10
4   04-04-2013  3   4   10
5   04-01-2013  3   4   11
6   04-02-2013  3   4   11
7   04-03-2013  3   4   11
8   04-04-2013  3   4   11
9   04-01-2013  3   4   12
10  04-02-2013  3   4   12

如果用户想要在 2013 年 1 月 4 日至 2013 年 3 月 4 日期间预订 3 间客房,则生成的查询应仅提供 10,11 作为酒店 ID。

问候 苏巴什

最佳答案

更新2

SELECT `hotelid` 
  FROM table1
 WHERE `date` BETWEEN '2013-04-01' AND '2013-04-03'
   AND quantity >=3
 GROUP BY `hotelid`
HAVING COUNT(*) = DATEDIFF('2013-04-03', '2013-04-01') + 1

WHERE 子句中的 3 表示应该可用的房间数。

输出

| HOTELID |
-----------
|      10 |
|      11 |

<强> SQLFiddle

关于php - 检索预订系统用户的唯一酒店 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16393321/

相关文章:

mysql - 将一个表的属性内容复制到rails中另一个表的属性

SQL 检查一组日期是否在指定的日期范围内

php - 如何在 Buddypress 中获取用户名/显示名称?

php - CRON 的行为就像在浏览器中运行脚本一样?

php - oauth-private.key 不存在或不可读

javascript - AJAX 按钮未提交且未通过

php - MYSQL Like 只查询关键字匹配大小写

php - 无法更新日期字段 - MySQL PHP

php - 在数据库中存储图像的 URL (PHP/MySql)

java - 从数据库检索图像并显示在另一个jsp页面中