From: pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general-owner@xxxxxxxxxxxxxx] On Behalf Of Gauthier, Dave Thanks for the answers. But I also have a predicate... select col1,col2 from foo where col4='c4' and col5 <> 'xxx'; How is that done? From: Richard Broersma [mailto:richard.broersma@xxxxxxxxx] On Tue, Oct 23, 2012 at 12:21 PM, Richard Broersma <richard.broersma@xxxxxxxxx> wrote: On Tue, Oct 23, 2012 at 12:06 PM, Chris Curvey <chris@xxxxxxxxxxxxxxx> wrote: select my_ids.id
oops - I had some malformed air code
GROUP BY id
You put the above query into a sub-select or CTE (WITH) and then in the outer query you apply whatever where clause you want. If you want to try and help the planner you could do: SELECT some_id FROM foo WHERE property = ‘…’ AND value = ‘…’ UNION ALL SELECT some_id FROM foo WHERE property = ‘…’ AND value = ‘…’ To pre-define which IDs are candidates and then use that information later on in the query. Whether this is a worthwhile effort I have no idea and it may not matter anyway depending on how well the brute-force approach works given your data. David J. |