私は再設計が必要なテーブルのようです。列名で判断すると、 "オブジェクト"(行)は "イベント"です。イベントはでに、の間はセクションになります。
session_id room_id
1 2
2 1
2 3
今すぐあなたには、特定のセッション中に使用されていない部屋をあげるクエリはまだないが、それはものを見つけるのは簡単だ。その設定で、あなたのテーブルは次のようになります。
SELECT room_id FROM events WHERE session_id = <whatever>
そして、それはあなたが必要な情報を取得するために可能なすべての部屋のリストとその組み合わせをするのは簡単です:それです。
希望すると便利です。
PS:あなたは(私はこれのための1つを追加しないだろうが、あなたは1を持っているために起こっている場合)にもrooms
テーブルを持っている場合は、それがさらに簡単になります:
SELECT id FROM rooms WHERE NOT EXISTS (SELECT * FROM events WHERE room_id = id AND session_id = <whatever>)
は、アプリケーションのような音私には論理。 –
@ダン・グロスマンは同意します。 – Nishant