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

时间:2013-05-06 06:41:41

标签: 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年4月1日至2013年4月4日预订3间客房,则结果查询应仅提供10,11作为酒店ID。

此致 Subash

2 个答案:

答案 0 :(得分:1)

<强> UPDATE2

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

答案 1 :(得分:0)

SELECT DISTINCT(`hotelid`) FROM `tableName` WHERE `date` = $checkindate AND `date` = $checkoutdate AND `quantity` = $numberofroom

使用以上查询。它只是虚拟查询根据你(字段名称和变量名称)修改它