On Fri, Dec 07, 2012 at 04:53:06PM +0100, Ekki Plicht (DF4OR) wrote:
> Hi.
> Two tables with a many_to_many relation via a link table:
> 
> Table of web pages:
> table webpage(id, filename, ...)
> 
> Table of images:
> table images (id, filename, ...)
> 
> Table linking pages and images:
> table img_grp_page (id_img, groupnumber, id_page)
> 
> 
> The many_to_many relation works fine, I can retrieve all images belonging
> to a certain webpage and all webpages where a certain image is used.
> 
> What I want to have is the 'group number' from the link table as well.
> Images are clustered in certain groups on a page, that information is
> represented by that group number.
> 
> Is there a way to get this in one go (one query)?

Of course there is. The key thing here is that many-to-many is *not*
a relationship (as prominently explained in several places in the docs).
All an m2m accessor really is is sugar for

$near->search_related('link')->search_related('far');

Furthermroe the entire purpose of an m2m is to hide away *entirely* the 
existence of the linker. Therefore the simple answer to your question 
is: do not use m2m ;)

my @linkers_with_fars
  = $near->search_related('link', {}, { prefetch => 'far' })

Cheers

_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk

Reply via email to