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


retrieve unique hotel id for users for booking system

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

id  date        quantity    roomtypeid  hotelid

用户将使用入住和退房日期搜索酒店,并通过搜索查询指定房间数量(数量(,所以我需要做的是从上表中获取酒店ID,该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日预订3间客房,则查询结果应仅给出10,11作为酒店id。

问候Subash

更新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

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

使用上面的查询。这只是一个伪查询,根据您(字段名称和变量名称(修改