gpt4 book ai didi

SQL 检查一组日期是否在指定的日期范围内

转载 作者:可可西里 更新时间:2023-11-01 08:22:00 27 4
gpt4 key购买 nike

我有一个表,其中包含模式中房间不可用时的日期:

ROOM_ID | DATE_UNAVAILABLE

我需要一个 sql 查询来检查在两个日期范围内是否有房间可用 - 类似的事情

Select All rooms that are constantly available between date 1 and date 2

或者说

选择所有没有在日期 1 和日期 2 之间的不可用日期表中输入日期的房间

我在这里使用 php MySQL。

最佳答案

内部查询找到不可用的房间,然后我们使用 Not-exists 左连接从结果中删除这些日期,只留下可用的房间。

SELECT r.ROOM_ID
FROM rooms r LEFT JOIN (
SELECT ROOM_ID
FROM tableName
WHERE DATE_UNAVAILABLE BETWEEN 'Date1' AND 'Date2'
GROUP BY ROOM_ID
) g ON r.ROOM_ID = g.ROOM_ID
WHERE g.ROOM_ID IS NULL

或者,如果您有正确的索引,跳过组可能会更快:

SELECT r.ROOM_ID
FROM rooms r LEFT JOIN tableName g ON r.ROOM_ID = g.ROOM_ID
AND g.DATE_UNAVAILABLE BETWEEN 'Date1' AND 'Date2'
WHERE g.ROOM_ID IS NULL

关于SQL 检查一组日期是否在指定的日期范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027119/

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