union in subselect?

From: Gary Stainburn <gary(dot)stainburn(at)ringways(dot)co(dot)uk>
To: pgsql-sql(at)postgresql(dot)org
Subject: union in subselect?
Date: 2001-07-31 14:42:12
Message-ID: 01073115421207.11590@gary.ringways.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

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
------
MSEC
ITA
REG
(3 rows)

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

So far so good.
select * from actions where cposn in (select posn from positions where
pholder = 81);
caction | cposn | clevel
---------+-------+--------
ENQT | REG | 2
ENQM | REG | 2
AMET | REG | 2
AMET | 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

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Richard Huxton 2001-07-31 14:54:15 Re: Get name of columns in a table
Previous Message Mounir Benzid 2001-07-31 07:54:39 Why can't I .........