同様の質問を見つけようとしましたが、正確な質問が見つからなかったので、投稿します。
私は2つのテーブルを持っています:
- 部屋(room_id)
- room_reservation(room_id、date)
2つの日付の間に少なくとも1日空いている部屋のリストを返すにはどうすればよいですか。
たとえば、私がそれらの部屋を持っている場合:
room_id 1、2、3
次に、room_reservationテーブルに、次のものがあります。
1 - 2012-07-22
1 - 2012-07-23
1 - 2012-07-24
1 - 2012-07-25
1 - 2012-07-26
2 - 2012-07-23
2 - 2012-07-24
次に、2012-07-22と2012-07-26の間に利用可能な部屋を検索すると、部屋#2と#3のみが返されます。
私はこれまでこのクエリを持っていますが、機能しませんでした...助けてください!
SELECT DISTINCT room_id AS id
FROM room
WHERE (SELECT COUNT('listing') FROM listing_calendar WHERE listing = l.listing_id AND date BETWEEN '2012-07-22' AND '2012-07-26' GROUP BY listing) < 5"
助けてくれてありがとう!