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