私は予約されたホテルの部屋をユーザーが指定したdaterangeに従って取得しようとしています。2つのデータ範囲の間の特定のレコードを選択
私は列を持つ2つのテーブル
- 部屋が このクエリを適用イム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')
)
)";
$ newreservcheckoutはユーザー
が提供する日付範囲です$ newreservcheckinとのは、私たちは今、100と101 100としてroomno付きの客室を持っているとしましょう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までの部屋の100番のエントリは無視されますが、9-16-2016から9-18-2016までの日付の部屋は100と表示されますndは101室を表示します
同じ部屋ではなく、異なる日付のものを与えるようにクエリを成形する方法は?