SQL クエリでまた問題が発生しています...
D.0.02 は 1 日目の期間 1 に割り当てられているため、0 をカウントする必要があります。しかし、1 日目の期間 2 には割り当てられていません。0 として返されるのはなぜですか?
SELECT COUNT(DISTINCT rm.Id)
FROM ts_room rm LEFT JOIN ts_roompref rp ON rp.room_id = rm.id
LEFT JOIN ts_request rq ON rq.id = rp.request_id
LEFT JOIN ts_allocation a ON a.request_id = rq.id
WHERE room_id = "D.0.02"
AND (a.status IS NULL OR a.status IN ('Pending', 'Failed', 'Declined'))
AND (day_id=1 AND period_id=2)
これが私のフィドルです:http://sqlfiddle.com/#!2/5e1de/13
ステータスが Pending、Failed、Declined のいずれでもない場合、部屋は無視されますが、他の期間または日は空いている可能性がありますが、予約されていません。部屋は引き続き無料で予約できます。
SQL クエリを再入力する必要があるようです。方法に関するアドバイスはありますか?