On Saturday 28 June 2003 14:47, Bruno BAGUETTE wrote:
> Do you mean this query ?
>
> SELECT
> products_options_groups.pk_prdoptgrp_id,products_options_groups.prdoptgr
> p_name
> FROM products_options_groups
> WHERE EXISTS
> (
>       SELECT *
>       FROM products_options_classification
>       INNER JOIN products_options ON products_options.pk_prdopt_id =
> products_options_classification.fk_prdopt_id
>       WHERE products_options_classification =
> products_options_groups.pk_prdoptgrp_id
>       AND products_options.fk_prd_id = [A PRODUCT ID WRITTEN HERE BY
> MY APP]
> )
> ORDER BY products_options_groups.prdoptgrp_name;

You can try 

 SELECT
 products_options_groups.pk_prdoptgrp_id,products_options_groups.prdoptgr
 p_name
 FROM products_options_groups
 WHERE 
 (
        SELECT  count(*)
        FROM products_options_classification
        INNER JOIN products_options ON products_options.pk_prdopt_id =
 products_options_classification.fk_prdopt_id
        WHERE products_options_classification =
 products_options_groups.pk_prdoptgrp_id
        AND products_options.fk_prd_id = [A PRODUCT ID WRITTEN HERE BY
 MY APP]
 )>0
 ORDER BY products_options_groups.prdoptgrp_name;

The count(*) trick will make it just another subquery and hopefully any 
performance issues with exists/in does not figure. Some of those issues are 
fixed in 7.4/CVS head though.

 HTH

 Shridhar


---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to