我有两张桌子:在一张桌子上,我保存了特定房间的所有座位。在另一个表中,存储了座位预订的数据。
现在,我想创建一个视图,其中我有一个标记座位标记或未标记的列。
或者更抽象:如果某个号码(座位号码)出现在预订表中,我想在视图的表格列中给出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 |
答案 0 :(得分:1)
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
答案 1 :(得分:0)
select s.*, exists ( select * from reservation r where r.snr = s.snr ) as reserved from seats
答案 2 :(得分:-1)
选择st。*,解码(res.snr,null,'false','true')保留
从座位st,
预约res
其中res.snr(+)= st.snr