我正在尝试编写一个SQL语句来检查数据库中房间的可用性。它需要完成以下任务:
1)检查 ts_roompref , ts_room 和 ts_request 以查看是否已预订房间
2)如果在比较 ts_request 和 ts_roompref 后找到 day_id 和 period_id 值,则表示我们需要查找 ts_allocation 表来检查房间的状态
我一直在努力实现这个逻辑几个小时。这是我到目前为止所做的工作:
select 1- count(distinct rp.Id) from
ts_roompref rp, ts_request rq
where rp.room_id= "D.0.02" AND rq.id = rp.request_id
AND day_id like "1" AND period_id like "1";
上述代码未考虑事实可能是待定,分配或拒绝。如果可以找到request_id,它只是假设房间已被预订。如何改进它以检查请求状态(如有必要)?
这是我的SQL小提琴:http://sqlfiddle.com/#!2/e1021/48
答案 0 :(得分:0)
查询中“LIKE”条件附近应该有百分号
... day_id LIKE "%1%" AND period_id LIKE "%1%"