我有两张桌子:
房间
id
category_id
name
description
image
price
arrival_date
depature_date
status
预订
id
name
email
mobile
category_id
room_id
arrival
departure
第一季度。我怎样才能确认有没有客人的房间?
问题2。我想显示用户输入日期为空的房间列表
我正在使用这个查询,它给我
error #1241 - Operand should contain 1 column(s)
SELECT * FROM room WHERE status = '1' AND id NOT IN
(SELECT * FROM booking
WHERE arrival='$arrival'
OR ( arrival BETWEEN '$arrival' AND '$departure' ) )
SELECT * FROM room WHERE status = '1' AND id NOT IN
(SELECT * FROM booking WHERE arrival='2/08/2013'
OR ( arrival BETWEEN '2/08/2013' AND '22/08/2013' ))
最佳答案
为了回答您的问题:
第一季度。我怎样才能查到有没有客人的房间
我想没有预订的房间可以给顾客,所以试试这个:
SELECT *
FROM room r
WHERE NOT EXISTS(
SELECT 'booking'
FROM booking b
WHERE b.room_id = r.id
AND (b.arrival BETWEEN '$arrival' AND '$departure')
)
问题2。我想显示用户输入日期为空的其他房间列表
查询是相同的,如果在该间隔中不存在任何预订,则房间是空的(因此可用于预订)