[英]Simulate a reservation: Compare hour, date and Classroom between Java and MySQL
[英]MySQL date reservation
我尝试找到类似的问题,但没有找到确切的问题,因此我将发布我的问题:
我有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"
谢谢您的帮助!
您可以使用以下解决方案:
SELECT a.room_id
FROM rooms a
LEFT JOIN room_reservations b ON
a.room_id = b.room_id AND
b.date BETWEEN '2012-07-22' AND '2012-07-26'
GROUP BY a.room_id
HAVING COUNT(b.room_id) < DATEDIFF('2012-07-26', '2012-07-22') + 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.