Обсуждение: union in subselect?

Поиск
Список
Период
Сортировка

union in subselect?

От
Gary Stainburn
Дата:
Hi all,

Can you use (or work around towards) a union in a subquery?

I have :-

Members
mid int4;
mnec bool; -- many NEC members

Positions (one position = one holder - excludes  NEC)
posn    char(4);
pholder int4; -- refers to mid

Actions
caction  char(4) -- e.g. UPDT = update team
cposn    char(4) -- refers to posn
clevle    int4 -- increasing permission level

select 'NEC'  as posn from members where mid = 81 and mnec = true;posn
------NEC
(1 row)

select posn from positions where pholder = 81;posn
------MSECITAREG
(3 rows)

select posn from positions where pholder = 81 union select 'NEC' as posn from 
members where mnec = true and mid = 81;posn
------ITAMSECNECREG
(4 rows)

So far so good.
select * from actions where cposn in (select posn from positions where 
pholder = 81);caction | cposn | clevel
---------+-------+--------ENQT    | REG   |      2ENQM    | REG   |      2AMET    | REG   |      2AMET    | ITA   |
3
 

Still works - looking good

select * from actions where cposn in (select posn from positions where pholder
= 81 union select 'NEC' as posn from members where mnec = true and mid = 81);

gives me:

ERROR:  parser: parse error at or near "union" 

-- 
Gary Stainburn
This email does not contain private or confidential material as it
may be snooped on by interested government parties for unknown
and undisclosed purposes - Regulation of Investigatory Powers Act, 2000     


Re: union in subselect?

От
Tom Lane
Дата:
Gary Stainburn <gary.stainburn@ringways.co.uk> writes:
> select * from actions where cposn in (select posn from positions where pholder
> = 81 union select 'NEC' as posn from members where mnec = true and mid = 81);

> gives me:
> ERROR:  parser: parse error at or near "union" 

Update to PG 7.1.
        regards, tom lane