2014-12-02 24 views
0

我有一臺名爲「checkInGuestUsers」,其中有像「checkInTime(DATETIME),checkOutTime(DATETIME),客房(VARCHAR)列MYSQL:查找特定時期之間記錄

還有誰訂一些特定的用戶客房特定時間內,

UserId checkInTime   checkOutTime    rooms 

25  2014-12-04 00:00:00 2014-12-05 23:59:59  101,102 

現在其他用戶或同一用戶想要內

"2014-12-03 00:00:00" to "2014-12-04 23:59:59" OR 
"2014-12-04 00:00:00" to "2014-12-04 23:59:59" 

預訂房間,然後系統將返回所有的房間裏除101,102,因爲這些房間ST已經預訂了 「2014年12月4日00:00:00」到「2014年12月4日23:59:59」

我想要一個SQL查詢一樣,如果我選擇的時間從上述兩者中選擇一個返回在該時段內預訂的房間。

我已經嘗試過使用之間和大於或小於條件在SQL中但未能得到確切的結果。

回答

0

從房間選擇其中ROOM_ID是checkInTime空或checkOutTime < = bookFrom和checkInTime爲空或bookTo < = checkInTime

這是功課?

+0

在你已經給出這個問題的答案之後,遲一點問問。 – EternalHour 2014-12-02 07:35:05

+0

是的,我永遠不知道我是否應該......主要是爲了羞愧他們。該網站是否有推薦的政策? – Andras 2014-12-02 07:41:14

0
select r.* 
from rooms r 
    left join checkInGuestUsers g 
    on g.rooms like r.<room_no> -- actually not a good condition, should be improved 
    and g.checkInTime <= {:book_to} and g.checkOutTime >= {:book_from} 
where g.rooms is null