ok. it adds a layer on top. Basically you want to have all products matching all product_filters that have AT LEAST 2 rows for the same product.
here we go. myfilter = ("top", "sweatshirt") top_and_sweatshirts = all_in_one( db.filters.name.belongs(myfilter) ).select(db.products.id, db.products.name, groupby=db.products.id|db.products.name, having=db.filters.id.count() >= len(myfilter) ) so, the logic is..... - from the full resultset, filter all that are either "top" or "sweatshirt" - group by what I want (products) - count it (after grouping), filtering all products.id that have at least 2 different filters.id (that means, all products that are BOTH top and sweatshirt) when you "count" after grouping, you have to use the "having" clause.... -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.