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.


Reply via email to