【发布时间】:2018-04-06 17:43:49
【问题描述】:
我有一张带有 Hotel Rooms 的 MySQL 表。我需要找到未被占用的房间,例如“2018-05-18”或“2018-05-19”
"TABLE ROOMS"
+--------+--------------------------------+----------+-
| IDROOM| TITLE | CATEGORY |
+--------+--------------------------------+----------+-
| 50 | Nice room with cable and wifi | Double Room |
| 51 | Small room with jacuzzy | Single Room |
| 52 | Small room with balcony | Triple Room |
| 53 | Small room with 2 beeds | Double Room |
和第二个 MYSQL 表,其中包含房间的 ID 和被占用的日期(每行只有一天......例如 idroom 15,占用时间 2018-04-06,idroom 15,占用日期 2018-04-07等):
"TABLE DATES"
+---------+--------+-------------------------+
| ID | IDROOM| OCCUPIEDDATE |
+---------+--------+-------------------------+
| 1 | 50 | 2018-04-07 |
| 2 | 50 | 2018-04-08 |
| 2 | 51 | 2018-05-08 |
我有这个 SQL 语句:
SELECT DISTINCT r.idroom FROM rooms r, dates rd WHERE r.category = 2 AND rd.idroom=r.idroom AND rd.occupieddate NOT IN ( '2018-04-07','2018-04-08' )
但它仍然向我显示已占用的结果,例如 50 号房间。
我该怎么办?
【问题讨论】:
-
OCCUPIEDDATE是日期字段还是字符字段?