UNIONS in subqueries

UNIONS in subqueries

am 24.05.2006 00:26:18 von Luke

Hello!

I have a problem using UNIONs inside subqueries. I have simplified my
query to make it more readable. The question is about the right syntax.


1.
This works fine /UNION/

(SELECT f15.Form15SampleTube1RnaBarcode AS ObjectId,
f15.Form15PatientID AS PtId FROM form15 f15
WHERE f15.Form15SampleTube1RnaBarcode IN ('01D2V','01DH6'))

UNION

(SELECT f15.Form15SampleTube6RnaBarcode AS ObjectId,
f15.Form15PatientID AS PtId FROM form15 f15
WHERE f15.Form15SampleTube6RnaBarcode IN ('01D2V','01DH6'))


2.
This works fine too /subquery/:

SELECT ObjectId FROM

(SELECT f15.Form15SampleTube1RnaBarcode AS ObjectId,
f15.Form15PatientID AS PtId FROM form15 f15
WHERE f15.Form15SampleTube1RnaBarcode IN ('01D2V','01DH6')) AS
SubTable1;


3.
But when I run 1&2 mixed I get in troubles. This is a query draft,
can't come up with the right syntax:


SELECT ObjectId FROM


(SELECT f15.Form15SampleTube1RnaBarcode AS ObjectId,
f15.Form15PatientID AS PtId FROM form15 f15
WHERE f15.Form15SampleTube1RnaBarcode IN ('01D2V','01DH6'))

UNION

(SELECT f15.Form15SampleTube6RnaBarcode AS ObjectId,
f15.Form15PatientID AS PtId FROM form15 f15
WHERE f15.Form15SampleTube6RnaBarcode IN ('01D2V','01DH6'))


I tried many combinations and got various syntax errors. Any ideas?


Thanks,
Luke

Re: UNIONS in subqueries

am 24.05.2006 22:55:47 von Bill Karwin

Luke wrote:
> SELECT ObjectId FROM
>
>
> (SELECT f15.Form15SampleTube1RnaBarcode AS ObjectId,
> f15.Form15PatientID AS PtId FROM form15 f15
> WHERE f15.Form15SampleTube1RnaBarcode IN ('01D2V','01DH6'))
>
> UNION
>
> (SELECT f15.Form15SampleTube6RnaBarcode AS ObjectId,
> f15.Form15PatientID AS PtId FROM form15 f15
> WHERE f15.Form15SampleTube6RnaBarcode IN ('01D2V','01DH6'))

Try this:

SELECT FROM
(
(SELECT ...)
UNION
(SELECT ...)
)

That is, put another pair of parens around the whole UNION query.

Regards,
Bill K.

Re: UNIONS in subqueries

am 25.05.2006 03:31:08 von Luke

Hi, thanks. I think I tried same as yours /no access now/ and ended up
with syntax errors.
But this solution works (got it from a guy from mysql.lists):

SELECT FROM

(SELECT FROM...

UNION

SELECT FROM... ) as abc

Regards,
Luke