我試圖根據用戶給出的日期範圍獲得無保留的酒店房間。選擇兩個日期範圍之間的特定記錄
我有兩個表
- 客房的列ROOM_ID,roomno
- 保留與列reserv_id,ROOM_ID,checkindate,checkoutdate
即時通訊應用該查詢
$sql = "SELECT DISTINCT roomno
FROM rooms
LEFT JOIN reservation ON rooms.room_id = reservation.room_id
AND
(
(
(reservation.checkindate > '$newreservcheckin')
AND
(reservation.checkindate > '$newreservcheckout')
)
OR
(
(reservation.checkoutdate < '$newreservcheckin')
AND
(reservation.checkoutdate < '$newreservcheckout')
)
)";
$ newreservcheckin和$ newreservcheckout的日期範圍由用戶
提供比方說,我們有roomno爲100和101 現在100從2016年9月16日登記到2016年9月18日 房並且100也預訂從9-27-2016到9-29-2016 並且房間101未預留(意味着它在預訂表中沒有記錄)
假設如果用戶給出日期9-26-2016到9- 30-2016查詢將忽略從9-27-2016到9-29-2016的房間no 100項,但會顯示房間no 100,日期從9-16-2016到2016年9月18日a nd會顯示101個房間
如何模塑查詢,以便它可能不會給同一個房間,但具有不同日期的房間?