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