共有3张表:
建筑
,
房间
,
保留
.
1栋楼=n个房间
1个房间=n个预订
桌上建筑物-
身份证件
(int),
名称
(varchar)
餐桌室-
身份证件
(int),
建筑_标识
(整数)
餐桌预订-
身份证件
(int),
房间id
(int),
日期_开始
(日期时间),
日期_结束
(日期时间)
建筑物表示例
<pre>
ID name
1 Building A
2 Building B
3 Building C
</pre>
房间表示例
<pre>
ID building_id
1 1
2 1
3 2
4 3
</pre>
预订表示例
<pre>
ID room_id date_start date_end
1 1 2014-08-09 14:00:00 2014-08-09 14:30:00
2 1 2014-08-09 14:30:00 2014-08-09 15:30:00
3 3 2014-08-09 16:30:00 2014-08-09 17:30:00
4 2 2014-08-09 16:00:00 2014-08-09 17:00:00
5 3 2014-08-09 16:00:00 2014-08-09 16:30:00
</pre>
问题
如何过滤在特定日期和时间至少有1个房间可用的所有建筑?
例如,我们希望过滤在2014-08-09 16:00:00至2014-08-09 17:00:00期间至少有1个可用房间的所有建筑。在这种情况下,它将显示
A栋
以及
C栋
可用。
A栋
有1个空余房间
B栋
还有一个免费房间,因为那个房间没有预订。
有人能帮我解决这个问题吗?我只是无法通过一个MySQL查询来获取所有建筑。非常感谢。