ts_allocationテーブルに存在しない (つまり、割り当てられていない) 部屋、またはts_allocationテーブルで保留中、失敗、または拒否されたすべての部屋を返そうとしています。部屋は、これらの条項のいずれかを満たすことができます。
しかし、D.0.02 などのいくつかの値が省略されています (フィドルを参照してください)? どうしてこれなの?上記のステータスでts_allocationに存在しますが、特定の条項を満たしているようには見えません。どうすればこれを解決できますか?
これが私のSQLFiddleです:http://sqlfiddle.com/#!2/e1021/6
SELECT
*
FROM
ts_room rm
WHERE
NOT EXISTS (
SELECT 1
FROM ts_roompref rp
JOIN ts_request rq
ON rp.request_id = rq.id
AND day_id = 1
AND period_id = 1
WHERE
rm.id = rp.room_id)
AND NOT EXISTS (
SELECT 1
FROM ts_roompref rp
JOIN ts_allocation a
ON rp.request_id = a.request_id
AND a.status <> 'Pending'
AND a.status <> 'Failed'
AND a.status <> 'Declined'
WHERE
rm.id = rp.room_id)