我试图找到一个类似的问题,但没有找到一个确切的问题,所以我会发布我的:
我有 2 张桌子:
- 房间 (room_id)
- room_reservation (room_id, 日期)
如何返回在 2 个日期之间至少有 1 天免费的房间列表。
例如,如果我有这些房间:
room_id 1、2 和 3
然后在 room_reservation 表中,我有以下内容:
1 - 2012-07-22
1 - 2012-07-23
1 - 2012-07-24
1 - 2012-07-25
1 - 2012-07-26
2 - 2012-07-23
2 - 2012-07-24
然后在 2012-07-22 和 2012-07-26 之间搜索可用房间应该只返回房间 #2 和 #3。
到目前为止我有这个查询,但没有工作......请帮忙!
SELECT DISTINCT room_id AS id
FROM room
WHERE (SELECT COUNT('listing') FROM listing_calendar WHERE listing = l.listing_id AND date BETWEEN '2012-07-22' AND '2012-07-26' GROUP BY listing) < 5"
谢谢您的帮助!