From: | Wei Weng <wweng(at)kencast(dot)com> |
---|---|
To: | gry(at)ll(dot)mit(dot)edu |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: select question |
Date: | 2002-08-28 20:21:31 |
Message-ID: | 1030566092.24266.1.camel@Monet |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
You can use this query
SELECT * FROM T
WHERE run = 'a' AND wafer = 1 AND test = 'foo'
UNION
SELECT * FROM T
WHERE run = 'a' AND wafer = 2 AND test = 'foo'
UNION
SELECT * FROM T
WHERE run = 'a' AND wafer = 3 AND test = 'foo'
UNION
SELECT * FROM T
WHERE run = 'a' AND wafer = 3 AND test = 'bar'
On Wed, 2002-08-28 at 16:12, george young wrote:
> [postgreql 7.2, linux]
> I have a table T with columns run, wafer, and test:
> T(run text, wafer int, test text)
> Given a run and a set of wafers, I need the set of tests that match
> *all* the specified wafers:
>
> run wafer test
> a 1 foo
> a 2 foo
> a 3 foo
> a 3 bar
>
> E.g.
> Given run 'a' and wafers (1,3) I should get one row: foo, since only foo matches both 1 and 3.
> Given run 'a' and wafers (3) I should get two rows: foo,bar, since both foo and bar match 3.
>
> Is there some neat way to do this in a single query?
>
> Puzzled,
> George
>
>
> --
> I cannot think why the whole bed of the ocean is
> not one solid mass of oysters, so prolific they seem. Ah,
> I am wandering! Strange how the brain controls the brain!
> -- Sherlock Holmes in "The Dying Detective"
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>
--
Wei Weng
Network Software Engineer
KenCast Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2002-08-28 21:01:25 | Re: [SQL] LIMIT 1 FOR UPDATE or FOR UPDATE LIMIT 1? |
Previous Message | george young | 2002-08-28 20:12:41 | select question |