MySQL房间可用范围

时间:2014-06-04 04:27:24

标签: mysql sql

我想选择所选日期范围内至少有一天可用日期的所有房间。因此,如果用户想要选择2014-06-15 - 2014-06-30,他不仅应该获得期间内全部可用的房间,而且还可以再获得一天的房间。

我有两张桌子' 房间'和' rooms_booking '

表:

rooms ( id, title, beds_number...) 

rooms_booking(id, rooms_id, start, end)  

如何使用上述标准检索所有房间? 感谢

1 个答案:

答案 0 :(得分:1)

只需获取所需的日期并推断哪个房间至少有一天可用。

select a.title, ifnull(sum(datediff(least(b.end, '2014-06-30'), a.start) + 1),0) days_taken
from rooms a
left join rooms_booking b on a.id = b.rooms_id
where b.start >= '2014-06-15' and b.start <= '2014-06-30'
group by a.title
having days_taken <= datediff('2014-06-30', '2014-06-15');