我正在查询酒店预订和预订系统的查询,但在选择两个日期之间未预订房间时遇到了问题。
我的查询与此类似,但无法正常工作,查询返回注意,但实际上我有3个房间,房间类型为1。
SQL提琴:http://sqlfiddle.com/#!2/b97419
SELECT tbl_room.room_no, tbl_room.type_id, tbl_Reservation.room_id
FROM tbl_room
LEFT JOIN tbl_Reservation ON tbl_room.id = tbl_Reservation.room_id
WHERE (
(
tbl_Reservation.checkin_data < '" . $checkin . "'
AND tbl_Reservation.checkout_data < '" . $checkin . "'
)
OR (
tbl_Reservation.checkin_data > '" . $checkout . "'
AND tbl_Reservation.checkout_data > '" . $checkout . "'
)
)
AND tbl_room.type_id =1
谢谢您的帮助,对不起我的英语不好。
最佳答案
试试这个
SELECT
tbl_room.room_no,
tbl_room.type_id,
tbl_room.id,
tr.id as reserv_status
FROM tbl_room
LEFT JOIN tbl_Reservation tr ON tbl_room.id = tr.room_id AND
(
(tr.checkin_data <= "'$checkin'" AND tr.checkout_data >= "'$checkin'")
OR
(tr.checkin_data <= "'$checkout'" AND tr.checkout_data >= "'$checkout'")
)
WHERE
tbl_room.type_id =1 AND tr.id IS NULL
关于php - 检查两个日期是否不在另一个日期+ MYSQl之间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26865807/