我有2个MySQL表
tableRooms包含酒店的房间
tableRoomsBooked包含房间的预订日期
我需要一个SQL查询,该查询返回在2个给定日期之间没有预订的房间。到目前为止,这是我得到的:
SELECT * FROM `tableRooms`
LEFT JOIN `tableRoomsBooked`
ON `tableRooms`.`id` = `tableRoomsBooked`.`room_id`
WHERE (date BETWEEN '2015-01-02' AND '2015-01-30')
....?
该查询仅应获得room_id 2,因为在此期间房间2没有预订。
我的查询应该是什么样的?
select *
from tableRooms
where id not in (
select distinct room_id
from tableRoomsBooked
where date between '2015-01-02' and '2015-01-30'
)
这将选择子请求中现有ID的列表,然后将其从主请求中排除。
无论如何,您应该更改“ date”列的名称,因为“ date”也是一种数据类型,也可能会造成混淆。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句