gpt4 book ai didi

mysql - 从表中选择 *,其中所需期间与现有期间不重叠

转载 作者:行者123 更新时间:2023-11-29 01:54:36 26 4
gpt4 key购买 nike

我有一个包含记录和每条记录的时间段的表,例如预订。所以我的记录看起来像这样:

Table-reservations
id room datefrom dateto
1 'one' '2015-09-07' '2015-09-12'
2 'two' '2015-08-11' '2015-09-02'
3 'three' '2015-06-11' '2015-06-14'
4 'two' '2015-07-30' '2015-08-10'
5 'four' '2015-06-01' '2015-06-23'
6 'one' '2015-03-21' '2015-03-25'
...
n 'nth' '2015-06-01' '2015-07-03'

还有一个包含房间 ID、房间号和房间类型的表格,如下所示:

Table-rooms
idrooms room roomtype
1 'one' 'simple'
2 'two' 'simple'
3 'three' 'double'
...
nx 'nth' 'simple'

如您所见,有些房间出现了多次,但出现的时间段不同,因为它们在不同的时间段被预订。我需要通过SQL获取的是给定时间段内有空房的房间列表。

类似(伪代码):

Select room from table where there is no reservation on that room between 2015-08-13 and 2015-08-26

我该怎么做?

所以我将有一个 fromdate 和一个 todate,我将不得不在查询中使用它们。

你们中的任何人都可以给我一些指示吗?

现在我使用以下 sql 获取现在可用的房间列表

select * from rooms
where idrooms not in
(
select idroom from rezervations where
((date(now())<=dateto and date(now())>=datefrom)or(date(now())<=dateto and date(now())<=datefrom))
)
order by room

最佳答案

这可能更容易理解。

假设您有另一张房间 table 。

SELECT * 
FROM rooms
WHERE NOT EXISTS (SELECT id
FROM reservations
WHERE reservations.room = rooms.id
AND datefrom >= '2015-08-13'
AND dateto <= '2015-08-26')

关于mysql - 从表中选择 *,其中所需期间与现有期间不重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32768245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com