[Dbix-class] Many2MAny "Related" query
Zbigniew Lukasiak
zzbbyy at gmail.com
Thu Mar 15 16:55:11 GMT 2007
First - do you want to have all the tags of all the products that have
*all* of the selected tags or you want to have all the tags of all the
products that have *any* of the selected tags?
>From the pseudocode it seems that you want the latter, but I am still not sure.
--
Zbyszek
On 3/15/07, Christopher H. Laco <claco at chrislaco.com> wrote:
> Along with my -in not working quandry, I'm also trying to figure out how
> to sanely to the age old 'related things' query in a many 2 many.
>
> The schema is roughly:
>
> products
> id, sku
> product_tag
> product_id, tag_id
> tags
> id, name
>
> Given a list of selected tags, I want to find all tags of all products
> that have the selected tags. In a data set/IN world, that's as easy as
> (pseudo):
>
> select tags where tag.id in (
> select tag.id from tags join product_tag where tag in @selected
> )
>
> But since I'm having issues with -in, trying to do this as a put join is
> making my brain hurt. My first instinct is to join twice aliasing the
> tags table:
>
> resultset({
> 'tags_2.name' => \@selected
> }, {
> distinct => 1,
> join => [
> {'map_product_tag' => 'tag'},
> {'map_product_tag' => 'tag'}
> ]
> })
>
> What's the sanest way to accomplish this query without turning my brain
> into mush?
>
> Thanks,
> -=Chris
>
>
> _______________________________________________
> 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/dbix-class@lists.rawmode.org/
>
>
--
Zbigniew Lukasiak
http://brudnopis.blogspot.com/
More information about the Dbix-class
mailing list