即使第二個表中只有一行不滿足日期條件,我也需要選擇為空。但是每個車位在 Reservations 表中都有多個預訂,即使其中一個預訂符合不在范圍內的標準,我也會得到車位的 ID。
我的選擇
SELECT Parking_Spaces.ID_Parking_Space FROM Reservations
INNER JOIN Parking_Spaces ON Reservations.ID_Parking_space = Parking_Spaces.ID_Parking_Space
AND (Reservations.Arrival_time NOT BETWEEN "2000-12-15" AND "2005-12-15")
AND (Reservations.Departure_time NOT BETWEEN "2000-12-15" AND "2005-12-15")
表示例:我不想從此表中選擇 ID_Parking_Space,因為第一行不符合我的條件。但是因為第二個我確實得到了身份證。
|ID_RESERVATION | Arrival_time | Departure_time | ID_Parking_Space
|:------------- |:--------------:|: ------------------:|:----------------:|
| 6 | 2001-12-15 | 2002-12-15 | 4 |
| 16 | 2009-12-15 | 2010-12-15 | 4 |
在完整的表中有更多的保留,如果一行不符合條件,我需要選擇失敗。
uj5u.com熱心網友回復:
我認為你需要的是NOT EXISTS:
SELECT p.ID_Parking_Space
FROM Parking_Spaces p
WHERE NOT EXISTS (
SELECT 1
FROM Reservations r
WHERE r.ID_Parking_space = p.ID_Parking_Space
AND (
r.Arrival_time BETWEEN '2000-12-15' AND '2005-12-15'
OR
r.Departure_time BETWEEN '2000-12-15' AND '2005-12-15'
)
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/483919.html
