gpt4 book ai didi

MySQL查询表获取开始日期和结束日期之间的数据

转载 作者:行者123 更新时间:2023-11-29 02:55:11 25 4
gpt4 key购买 nike

我有下表,可以订位

CREATE TABLE booking (
bookingID INT UNSIGNED NOT NULL AUTO_INCREMENT,
customerID INT,
runID INT,
startDate DATETIME,
endDate DATETIME,
dateBookedOn TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (bookingID),
INDEX idx_start (startDate),
INDEX idx_end (endDate),
FOREIGN KEY (runID) REFERENCES RUn(RunID),
FOREIGN KEY (customerID) REFERENCES customer(CustomerID)
)

然后我有一个运行表

CREATE TABLE run
(
RunID INT UNSIGNED NOT NULL AUTO_INCREMENT,
RunName VARCHAR(15),
PricePerNight DECIMAL(3,2),
primary key (RunID)
);

我需要查询表以检索在开始时间和结束时间之间未被占用的所有 runID。

我知道我可以使用以下查询来检索两个日期之间的 runID。

select runID 
from booking
where startDate >= '10/07/2015'
and endDate <= 15/07/2015;

我主要在架构上苦苦挣扎以检索未占用的运行,因此我可以查看两个日期之间的可用运行,也许是 bool 值?任何建议。

最佳答案

假设您正在寻找这些日期之间未预订的运行,您可以将 not in 运算符与给定查询一起用作子查询:

SELECT *
FROM run
WHERE run_id NOT IN (SELECT runID
FROM booking
WHERE startDate >= '10/07/2015' AND
endDate <= '15/07/2015');

关于MySQL查询表获取开始日期和结束日期之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31342279/

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