Guillermo Roditi wrote:
> i guess you would either inner self join for every tag to only select items
> that have all those tags or you could do an IN(@tags) and then group by
> product id using a count() and then in the having clause count = scalar
> @tags
> 
> SELECT id, name, COUNT(*) as cnt FROM products  INNER JOIN tags ON(
> products.id = tags.product_id) WHERE tags.tag IN( @tags ) GROUP BY
> products.id  HAVING cnt = scalar @tags
> 
> or
> 
> SELECT id, name, COUNT(*) as cnt FROM products
> INNER JOIN tags as tags1 ON(products.id = tags.product_id)
> INNER JOIN tags as tags2 ON(products.id = tags.product_id)
> WHERE tags1.tag ="computer" AND tags2.tag ="widget"
> 

And just I mention it, doing the SQL isn't my problem... it's now to
manke DBIC/SQL::Abstract happy that is the part that's screwing me up....


As for the SQL above, that's Products w/Tags... I want related Tags of
Tags (og products)...

In fact, I already have a $products->get_by_tags(@tags) that does
exactly that... an aliased join for each tag, then distinct product.*

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
Wiki: http://dbix-class.shadowcatsystems.co.uk/
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
Searchable Archive: http://www.mail-archive.com/[email protected]/

Reply via email to