Создать вид, показывающий все незарезервированные места - PullRequest
0 голосов
/ 17 февраля 2010

У меня есть два стола: в одном я сохраняю все места для определенной комнаты. В другой таблице хранятся данные для резервирования мест.

Теперь я хотел бы создать представление, в котором у меня есть столбец, который отмечает место как помеченное или немаркированное.

Или более абстрактно: я хотел бы указать true / false в столбце таблицы для представления, если определенное число (номер места) появляется в резервируемом.

Заранее спасибо

PS: я использую postgres

Таблица определений:

Просмотр "public.seats"

   Column   |  Type   | Modifiers 
------------+---------+-----------
ticketname | text    | 
price      | integer | 
colour     | text    | 
snr        | integer |                      <- thats thes seatnumber, primary key
px         | integer | 
py         | integer | 
rnr        | integer |                      <- the roomnumber, not relevant

Таблица "public.reservation"

Column |  Type   | Modifiers 
--------+---------+-----------
spnr   | integer | 
snr    | integer |                            <- references seats
knr    | integer | 

Ответы [ 3 ]

1 голос
/ 17 февраля 2010
CREATE OR REPLACE VIEW seat_reserved
AS
SELECT s.snr seat,
       CASE COALESCE(r.snr,-1) WHEN -1 THEN false ELSE true END reserved
 FROM  seats s
       LEFT OUTER JOIN reservation r on r.snr = s.snr
0 голосов
/ 17 февраля 2010
select s.*, exists ( select * from reservation r where r.snr = s.snr ) as reserved from seats
0 голосов
/ 17 февраля 2010

Выбор st. *, Декодирование (res.snr, null, 'false', 'true') зарезервировано
с места ст,
резервация рез
где res.snr (+) = st.snr

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...