我只需要在酒店预订系统中选择可用的房间
这是我的查询
echo $str = $_POST['start'];
echo $en = $_POST['end'];
$sql = "SELECT *
FROM chambre
WHERE id NOT IN (SELECT id_chambre
FROM reservation_client
where start < $en
or end >=$str)";
但是查询给了我不在表reservation_client
中的房间,而不是在$str
和$en
日期之间可用的房间
答案 0 :(得分:1)
您可以改用LEFT JOIN
,并查看保留位置NULL
(这意味着没有左连接)。
SELECT c.*
FROM chambre AS c
LEFT JOIN reservation_client AS rc
ON c.id = rc.id_chambre AND rc.start < '$en' AND rc.end >= '$str'
WHERE rc.id_chambre IS NULL
尽管您应该使用准备好的语句,而是通过占位符绑定值。