X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [64.117.224.130]) by svr1.postgresql.org (Postfix) with ESMTP id C8259D1B8A5 for ; Thu, 28 Aug 2003 01:19:21 +0000 (GMT) Received: from svr1.postgresql.org ([64.117.224.193]) by localhost (neptune.hub.org [64.117.224.130]) (amavisd-new, port 10024) with ESMTP id 90600-09 for ; Wed, 27 Aug 2003 22:18:54 -0300 (ADT) Received: from megazone.bigpanda.com (45.mufb.snfc.sffca01r18.dsl.att.net [12.103.249.45]) by svr1.postgresql.org (Postfix) with ESMTP id 8EDADD1B9F7 for ; Wed, 27 Aug 2003 22:18:50 -0300 (ADT) Received: by megazone.bigpanda.com (Postfix, from userid 1001) id 311A5D64A; Wed, 27 Aug 2003 18:18:39 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by megazone.bigpanda.com (Postfix) with ESMTP id 26C1B5C11; Wed, 27 Aug 2003 18:18:39 -0700 (PDT) Date: Wed, 27 Aug 2003 18:18:39 -0700 (PDT) From: Stephan Szabo To: ProgHome Cc: 'Franco Bruno Borghesi' , Subject: Re: How to optimize this query ? In-Reply-To: <037f01c36cff$ec09c770$0700a8c0@Office3> Message-ID: <20030827181401.K85397-100000@megazone.bigpanda.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new at postgresql.org X-Archive-Number: 200308/322 X-Sequence-Number: 14938 On Wed, 27 Aug 2003, ProgHome wrote: > You were right, Stephan ! > The query below is still not correct ... because the second line > shouldn't be shown ! > Now I really don't know how I could rewrite this without a subquery > because it doesn't seem to be possible with some LEFT or INNER joins ! > Do you have an idea ? The only ways I can think of are through a subquery (*) or possibly there might be a way to do it with EXCEPT, but on first blush that seems like it might be difficult and probably not any better speed wise. (*) - You were using IN (subquery) which is known to be poorly optimized for 7.3 and earlier. You might want to see how it performs on your data under 7.4beta for forward looking, and/or consider converting into a form using EXISTS rather than IN.