我有以下表,其中預定可製成MySQL查詢表得到的開始和結束日期之間的數據
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;
我主要是掙扎的架構來檢索空閒的運行,所以我可以兩個日期,也許一個布爾值之間查看可用的運行?有什麼建議麼。
您是否需要計算指定日期之間的運行ID? –
什麼構成'未佔領'? – bowlturner
@bowlturner未被佔用將是在開始和結束日期之間未預訂的運行。所以結果集將顯示可用於新預訂的房間。 – nwa