我有两张桌子:
房间

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。我想显示用户输入日期为空的其他房间列表
查询是相同的,如果在该间隔中不存在任何预订,则房间是空的(因此可用于预订)

10-08 07:23