【发布时间】:2011-02-11 14:31:18
【问题描述】:
我目前正在尝试通过组合查询来优化数据库。但在优化房间可用性查询时,我总是遇到死胡同。
我有一个房间可用性表,其中每条记录都说明了每个日期的可用房间数量。它的格式如下:
- room_availability_id (PK)
- room_availability_rid (fk_room_id)
- room_availability_date (2011-02-11)
- room_availability_number(可用房间数)
麻烦在于获取在提供的每一天都有可用的房间列表。当我像这样使用 IN() 时:
WHERE room_availability_date IN('2011-02-13','2011-02-14','2011-02-15')
AND room_availability_number > 0
如果 14 日的可用性为 0,它仍然会给我其他 2 个日期。但我只想要那个 room_id 在所有三个日期都可用的时候。
请告诉我,除了单独查询每个日期/房间/可用性组合之外,还有一种方法可以在 MySQL 中执行此操作(这就是现在所做的 :-()
我尝试了各种组合,尝试使用 room_availability_date = ALL (...),尝试了一些肮脏的重复子查询但无济于事。
提前感谢您的任何想法!
【问题讨论】: