当前位置: 首页 > 面试题库 >

订房查询

邹书
2023-03-14
问题内容

我在编写sql从表中获取可用空间时遇到问题。

我的表结构如下。

Table Booking
ID | START_DATE | END_DATE


Table BookingRoom (Intermediate Table)
ID   | BOOKING_ID   |ROOM_ID

一个房间可以链接到许多预订,一个预订可以包含很多房间

Table Room
Contains the ID room

我已经尝试过了,但是如果一个房间在两个不同的日期链接到两个不同的预订会比较麻烦,那么只有第一个预订ID才能进行比较

SELECT DISTINCT r.ID FROM room AS r ,booking AS b,bookingroom AS br
 WHERE r.ID = br.ID_ROOM
 AND b.ID = br.ID_BOOKING
 AND (
           b.END_DATE < '05/14/2013'
        OR b.START_DATE > '05/15/2013'
     )

有人可以帮我编写SQL,以便在入住和退房之间获得可用的房间。


问题答案:

如果您想要的只是在所需日期的整个范围内可用的房间列表,那么类似以下的方法可能会起作用:

Select Room.Id
From Room
Where Room.Id Not In    (
                        Select RoomId
                        From BookingRoom
                            Join Booking
                                On Booking.Id = BookingRoom.BookingId
                        Where Booking.StartDate <= 'DesiredEndDate'
                            And Booking.EndDate >= 'DesiredStartDate'
                        )
Order By Room.Id

因此,使用原始示例,我们可能会得到:

Select Room.Id
From Room
Where Room.Id Not In    (
                        Select RoomId
                        From BookingRoom
                            Join Booking
                                On Booking.Id = BookingRoom.BookingId
                        Where Booking.StartDate <= '2013-05-15'
                            And Booking.EndDate >= '2013-05-14'
                        )
Order By Room.Id


 类似资料:
  • 问题内容: 我在编写sql以从表中获取可用房间时遇到问题。我的表结构如下。 表:预订 桌子:房间 包含有关房间的详细信息,该表的主键是room_id,它具有1至10个房间,共10个房间。 我的问题是我想知道这些房间在2012年9月14日6:00 pm至21-09-2012 9:00 am之间可用,这意味着我应该只将room_id的结果作为1,3,5,7,8 ,9,10。 有人可以帮我编写SQL来从

  • 我正在将一个应用程序从普通的迁移到使用,我遇到的一个问题是,有几个查询具有用户可配置的order by语句,这意味着它们可以更改查看列表顺序的方式。 房间里似乎不允许动态order by语句,所以我必须针对每个order by语句进行单独的查询。 有没有人找到更好的方法来解决这个问题,这样我就可以有一个查询语句,其中唯一需要改变的是order by子句,而不是必须编写15个基本相同的额外查询语句?

  • 我是新来的和我试图我的得到一个从它。我试图这样做的它与这是id但问题是我不知道如何返回目标从。 这就是<代码>刀 这是Repository类

  • 说明 微信支付查询订单SDK。 官方文档:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_2 类 请求参数类 请求参数 类名:\Yurun\PaySDK\Weixin\OrderQuery\Request 属性 名称 类型 说明 $_apiMethod string 接口名称 $transaction_id string

  • 说明 支付宝境外到店支付-订单查询 官方文档:https://global.alipay.com/service/external_QR_Code/28 类 请求参数类 请求参数 类名:\Yurun\PaySDK\AlipayCrossBorder\InStore\Query\Request 属性 名称 类型 说明 $service string 接口名称 $partner_trans_id st

  • 请求地址 https://api.es.xiaojukeji.com/river/Approval/getOrder 返回数据格式 JSON 请求类型 GET 请求参数 参数名称 数据类型 必选 说明 client_id string yes 申请应用时分配的AppKey access_token string yes 授权后的access token timestamp string yes 当