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.*
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]/
