用户之前提出的问题
下面是我的SQL代码。
$find=mysqli_query($dbconn,"
SELECT *
FROM room
WHERE room_no NOT IN
(SELECT room_no
FROM reservation
WHERE check_in<='$check_out'
AND check_out>='$check_in');
想象一下,有人预订了12.07至12.10的100号房间。另一个搜索12.10到12.12的同一房间?然后显示没有可用的房间。我的房间入住时间是下午2点。退房时间是上午10点。那么我该怎么办呢。
有人订了100号书室,时间是12点07分至12点10分。他的结账时间是上午12点10分。然后可以在12点10分至12点12分预订另一间100号房间。因为他的报到时间是12.10下午2点。(
我想我解释过了。
等待您的帮助。
谢谢。
PS。
Room Table
----------
id room_no status
1 100 1
2 101 1
Reservation Table
-------------------
id room_no check_in check_out
1 100 2020.12.07 2020.12.10
我也尝试过这个sql代码。但结果是一样的。
$find=mysqli_query($dbconn,"SELECT * FROM room WHERE room_no NOT IN (SELECT room_no FROM reservation WHERE(check_out>='$check_in' AND check_in<='$check_out')OR(check_out<='$check_in' AND check_in>='$check_out'))");
如果你想允许在同一天退房和入住,你只需要允许范围一致;将<=
更改为<
,将>=
更改为>
。