我想用PHP创建一个预订酒店的房间。
我的表格是:rooms
和reservations
:
rooms
room_id | seats
我在这张桌子上有4条记录。 2x 2个座位的房间和2个4个座位的房间。
reservation
reservation_id | room_id | from_time | to_time
我想在任何时候选择免费房间。
我的查询没有考虑每隔一个房间。
SELECT *
FROM `rooms`
LEFT JOIN `reservation` ON `rooms.room_id` =`reservation.room_id`
WHERE
`seats` = 2
AND '01/01/2016'BETWEEN `reservation.from_time` AND `reservation.to_time`
or '11/02/2016' BETWEEN `reservation.from_time` AND `reservation.to_time`
答案 0 :(得分:1)
在保留名称的字段周围使用反引号,并在where子句中的条件周围使用大括号
SELECT *
FROM `rooms` r
left outer join `reservation` rv on r.`room_id`=rv.`room_id`
where `seats`=2
AND (
'01/01/2016'BETWEEN rv.`from` AND rv.`to`
or
'11/02/2016' BETWEEN rv.`from` AND rv.`to`
)