私はphpとmysqlでホテル予約システムのプロジェクトを行っています。以下の部屋のテーブルを作成しました。
room_no| roo_id | room_type
D1 | 1 | Deluxe
R1 | 2 | AC
R2 | 3 | Non Ac
C1 | 4 | Cottage
この表は、ホテルの全部屋を表す部屋に関するものです。
これはcustomer_bookingテーブルです。
customer_id | Cust_name | email | Address | room_type | room_no| cost|check_in | check_out
1 | satyawan |ss@gmail.com| xy | AC | R1 |5000 | 2012-12-26|2012-12-30
2 |satyawan | lahu@gmail.com|unr | Non A/C | R6 | 20002012-01-01|2012-12-07
3 |satyawan | lahu@gmail.com|unr | Non A/C | R8 | 2013-01-01 |2013-01-10
4 |satyawan | lahu@gmail.com|unr | Non A/C | R9 | 2013-01-10 |2013-01-16
5 |satyawan | lahu@gmail.com|unr | Non A/C | R6 | 2013-01-01 |2013-01-20
予約されていない部屋の並べ替えデータについて、この両方のテーブルの結合時にクエリを実行しました。クエリは以下のとおりです
SELECT *
FROM rooms
LEFT JOIN customer_booking
ON customer_booking.room_no = rooms.room_no
WHERE customer_booking.client_id IS NULL
OR (customer_booking.check_out >= 2013-01-01
AND customer_booking.check_in >= 2013-01-10)
OR (customer_booking.check_out <= 2013-01-01
AND customer_booking.check_out <= 2013-01-10)
ただし、予約されていない部屋のデータのみが必要です。部屋がすでに予約されている場合は、この部屋がこの日にすでに予約されていることを示す必要があります。
私はそれについて何も考えられません。