如何編寫查詢以選擇預訂數據庫中預訂的房間號爲 2012-05-1和2012-11-01的房間?正在寫入sql查詢
回答
請嘗試以下
SELECT * from room
WHERE (roomNo, hotelNo) not in
(select roomNo, hotelNo
from booking
where datefrom between '2012-05-01' and '2012-11-01'
or dateto between '2012-05-01' and '2012-11-01'
)
select r.* from rooms r
left outer join bookings b on b.roomno = r.roomno
where b.dateto not between '2012-05-01' and '2012-11-01'
and b.datefrom not between '2012-05-01' and '2012-11-01'
or b.roomno is null
如果預訂期限在結束日期的開始時間,會發生什麼情況?你沒有得到誰在開始或結束日期中預訂了房間...... – aleroot 2012-04-28 07:51:08
@aleroot:它的工作原理應該如此。請參閱SQLFiddle示例。 – 2012-04-28 08:16:05
@juergend可能不適用於目前爲止沒有預訂的房間。 – 2012-04-28 11:02:11
這應該包括所有客房未在兩個給定日期間預訂:
SELECT * FROM Room r
JOIN Booking b ON b.hotelNo = r.hotelNo AND r.roomNo = b.roomNo
WHERE NOT ('2012-05-01' BETWEEN (b.dateFrom AND b.dateTo)
OR '2012-11-01' BETWEEN (b.dateFrom AND b.dateTo))
可能不適用於迄今爲止沒有預訂的房間 – 2012-04-28 11:03:13
- 1. 寫入sql查詢
- 2. 將SQL查詢寫入Hibernate查詢
- 3. 無法寫入SQL查詢
- 4. 無法寫入SQL查詢
- 5. 如何寫入sql查詢
- 6. 寫SQL查詢
- 7. sql server查詢 - 正在寫多個查詢的唯一方法?
- 8. 正確的SQL數據表查詢寫
- 9. 編寫正確的SQL查詢
- 10. 編寫SQL查詢在PHP
- 11. 如何爲此寫入sql查詢:
- 12. C#將sql查詢寫入文件?
- 13. 使用嵌套集寫入SQL查詢
- 14. 寫入sql查詢的問題
- 15. SQL查詢的輸出寫入文件
- 16. SQL查詢結果寫入到Excel
- 17. 將sql查詢寫入實體框架
- 18. 需要幫助寫入SQL查詢
- 19. 編寫SQL查詢
- 20. 寫SQL Server查詢
- 21. 撰寫SQL查詢
- 22. 編寫SQL查詢
- 23. 編寫SQL查詢
- 24. 如何正確寫入這個SQL查詢?
- 25. 正在執行sql查詢
- 26. 如何將此SQL查詢寫入JPA查詢
- 27. MS SQL相關的子查詢,無法寫入外部查詢
- 28. 重寫SQL查詢無子查詢
- 29. 我可以在插入查詢中寫入插入查詢嗎?
- 30. 正確SQL查詢
你有什麼想法?請告訴我你的嘗試。 – 2012-04-28 07:39:08