【发布时间】:2014-12-17 19:28:56
【问题描述】:
我有 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 在此期间没有预订。
我的查询应该是什么样的?
【问题讨论】:
-
where date NOT between? -
MySQL 是否使用 NOT EXISTS 语法?
-
@MarcB where not between 也将返回 room_id 1 因为它的日期为
2015-01-01 -
@McAdam331 你是对的。这也将返回 room_id 1。Dookie 给出了下面的答案。