RE: [GENERAL] Large OR query

2001-06-12 Thread Tamsin

isn't that sort of IN statement not very efficient in postgresql?
normally instead of that sort of IN statement i do:

SELECT * FROM maintable WHERE exists (SELECT id FROM temptable WHERE
temptable.id = maintable.id);

but anyway, its not actually needed is it? can't you just do:

SELECT maintable.* FROM maintable, temptable WHERE maintable.id =
temptable.id;

tamsin

> -Original Message-
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of Mitch Vincent
> Sent: 12 June 2001 15:25
> To: Zak McGregor; [EMAIL PROTECTED]
> Subject: Re: [GENERAL] Large OR query
>
>
> Is populating another table with the 1000 values and doing a
> SELECT * FROM  WHERE  IN (SELECT  FROM
> ) ?
>
> I'm not entirely sure that it will yield a better result but it's worth a
> try.
>
> -Mitch
>
> - Original Message -
> From: "Zak McGregor" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, June 12, 2001 8:42 AM
> Subject: [GENERAL] Large OR query
>
>
> > Hi all
> >
> > If I have say 1000 values for an ID field, what is the best way to
> > select from a table all the corresponding records?
> > I have tried
> > select * from blah where id in (id1,id2,id3...id1000)
> > and
> > select * from blah where id=id1 or id=id2 ... or id=id1000
> >
> > and both are pretty slow.
> > Is there a better way to do this please?
> >
> > Thanks
> >
> > Ciao
> > --
> > Zak McGregorhttp://www.carfolio.com - Over 7000 car specs online
> > Web mercenary - currently for hire. Perl/html/.js/sql/cgi/GNUlinux/php +
> > -
> > "Trying to make bits uncopyable is like trying to make water not wet.
> > The sooner people accept this, and build business models that take
> > this into account, the sooner people will start making money again."
> > -- Bruce Schneier
> >
> > ---(end of broadcast)---
> > TIP 6: Have you searched our list archives?
> >
> > http://www.postgresql.org/search.mpl
> >
>
>
> ---(end of broadcast)---
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html
>


---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]



RE: [GENERAL] Large OR query

2001-06-12 Thread Jeff Eckermann

I would load the 1000 values into a temporary table, and join on the ID
field.  I usually find that approach gives much faster results.

> -Original Message-
> From: Zak McGregor [SMTP:[EMAIL PROTECTED]]
> Sent: Tuesday, June 12, 2001 7:42 AM
> To:   [EMAIL PROTECTED]
> Subject:  [GENERAL] Large OR query
> 
> Hi all
> 
> If I have say 1000 values for an ID field, what is the best way to
> select from a table all the corresponding records?
> I have tried 
> select * from blah where id in (id1,id2,id3...id1000)
> and
> select * from blah where id=id1 or id=id2 ... or id=id1000
> 
> and both are pretty slow.
> Is there a better way to do this please?
> 
> Thanks
> 
> Ciao
> --
> Zak McGregorhttp://www.carfolio.com - Over 7000 car specs online
> Web mercenary - currently for hire. Perl/html/.js/sql/cgi/GNUlinux/php +
> -
> "Trying to make bits uncopyable is like trying to make water not wet.
> The sooner people accept this, and build business models that take 
> this into account, the sooner people will start making money again." 
>   -- Bruce Schneier 
> 
> ---(end of broadcast)---
> TIP 6: Have you searched our list archives?
> 
> http://www.postgresql.org/search.mpl

---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster