Thread: Performing intersection without intersect operator

Performing intersection without intersect operator

From
"Nacef LABIDI"
Date:
<div dir="ltr">Hi all,<br /><br />I want to perform an intersection between several select queries but without using
theINTERSECT keyword.<br /><br />select userid from orders where productid=1 INTERSECT select userid from orders where
productid=2<br/><br />I want to transform it without the INTERSECT.<br /><br />Thanks to all<br /><br />Nacef<br
/></div>

Re: Performing intersection without intersect operator

From
"Oliveiros Cristina"
Date:
Howdy, Nacef,
 
Try this,
 
SELECT a.userid
FROM orders a
JOIN orders b
USING (userid)
WHERE  a.productid = 1
AND b.productid = 2
 
Best,
Oliveiros
 
----- Original Message -----
Sent: Tuesday, October 28, 2008 11:14 AM
Subject: [SQL] Performing intersection without intersect operator

Hi all,

I want to perform an intersection between several select queries but without using the INTERSECT keyword.

select userid from orders where productid=1 INTERSECT select userid from orders where productid=2

I want to transform it without the INTERSECT.

Thanks to all

Nacef

Re: Performing intersection without intersect operator

From
Peter Eisentraut
Date:
Nacef LABIDI wrote:
> I want to perform an intersection between several select queries but 
> without using the INTERSECT keyword.
> 
> select userid from orders where productid=1 INTERSECT select userid from 
> orders where productid=2
> 
> I want to transform it without the INTERSECT.

(select userid from orders where productid=1 UNION select userid from 
orders where productid=2) EXCEPT (select userid from orders where 
productid=1 EXCEPT select userid from orders where productid=2) EXCEPT 
(select userid from orders where productid=2 UNION select userid from 
orders where productid=1)