Мне кажется, что стол нуждается в редизайне. Судя по именам столбцов, «объектами» (строками), с которыми вы должны иметь дело, являются «События»: событие происходит в комнате, в течение секции. При такой настройке ваша таблица будет выглядеть так:
session_id room_id
1 2
2 1
2 3
Теперь еще нет запроса, который даст вам комнаты, которые не используются во время данного сеанса, но легко найти те, которые :
SELECT room_id FROM events WHERE session_id = <whatever>
И это легко объединить со списком всех возможных комнат, чтобы получить необходимую информацию.
Надеюсь, это поможет!
PS: Если у вас также есть таблица rooms
(я бы не добавил ее только для этого, но если бы она у вас была), она становится еще проще:
SELECT id FROM rooms WHERE NOT EXISTS (SELECT * FROM events WHERE room_id = id AND session_id = <whatever>)