On Jan 20, 2006, at 22:19 , Sebastjan Trepca wrote:

What I would like is to write a query where I can specify multiple names and get the IDs which have them.

For now it seems the most efficient way is to use INTERSECT statement:

SELECT "ID" from customer_mapping WHERE "Name"='john'
INTERSECT
SELECT "ID" from customer_mapping WHERE "Name"='peter'

My first thought is to use a join. Does this do what you want?

select id
from customer_mapping cm1
join customer_mapping cm2 using ("ID")
where cm1."Name" = 'john
and cm2."Name" = 'peter';

Although, I don't know how exactly to use ORDER, OFFSET and LIMIT in this case...

ORDER, OFFSET and LIMIT should work just fine with the JOIN query. You could also use your intersect in a subquery and then use ORDER, OFFSET and LIMIT on the outer query, e.g.,

select *
from (
        select "ID"...
        intersect
        select "ID" ...
) as common_names
...

Michael Glaesemann
grzm myrealbox com




---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to