【问题标题】:Select Unbooked Room from Arrival and Departure Date从到达和离开日期选择未预订的房间
【发布时间】:2018-09-13 04:23:22
【问题描述】:

我有一张名为 room 的桌子

id  房间
1    1 号房间
2    2 号房间

还有一个名为 order 的表

id    id_room    date_arrival     date_departure
1    1            2018-09-13    2018-09-15
2    1            2018-09-27  ​​  2018-09-29

当我选择 2018-09-14 的 date_arrival 和 2018-09-20 的 date_departure 时,我希望出现一个未预订的房间。

【问题讨论】:

标签: mysql sql between cross-join


【解决方案1】:

试试这个:这是一个重叠范围问题

http://sqlfiddle.com/#!9/9746d6/6

SELECT room.id, rname from
room  left join `roomorder`
on room.id=`roomorder`.id_room
and '2018-09-14' < date_departure AND '2018-09-20' > date_arrival

【讨论】:

  • 它仍然是一个保留字
  • 使用此 INNER JOIN,您将不会在结果中获得房间 2,即未预订的房间。您应该更改为 LEFT JOIN 并编辑您的 WHERE 子句以捕获 NULL 日期行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 2019-02-25
  • 1970-01-01
  • 2020-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多