Hi,<br><br>I'm doing a nested with three tables:<br><br>member: (has_many member_books mb)<br>member_id<br><br>member_books (belongs to member, book)<br>member_id<br>book_id <br>relation<br><br>book (has many member_books mb)
<br>book_id<br><br><br>My query I'm running is "What (distinct) books does members who wants the book the current member has have?"<br><br><br>The way I see it this should be correct:<br>MemberBooks->search(<br>
{<br> 'me.relation' => 'has', <br> 'me.member_id' => $self->member_id<br> })->search_related('book')->search_related ('mb',<br> { <br> 'mb.relation' => 'wants',
<br> 'mb.member_id' => {'!=', $self->member_id}<br> }<br> )->search_related ('member')->search_related('mb',<br> { <br> 'mb.relation' => 'has',<br> },<br> { group_by => ['
mb.book_id']}<br> );<br><br>But it results in:<br>SELECT mb_2.member_id, mb_2.book_id, mb_2.language, mb_2.shape, mb_2.relation FROM member_books me JOIN book book ON ( book.book_id = me.book_id ) LEFT JOIN member_books mb ON (
mb.book_id = book.book_id ) JOIN member member ON ( member.member_id = mb.member_id ) LEFT JOIN member_books mb_2 ON ( mb_2.member_id = member.member_id ) WHERE ( ( ( mb.relation = ? ) AND ( ( ( mb.member_id != ? AND mb.relation
= ? ) AND ( me.member_id = ? AND me.relation = ? ) ) ) ) ) GROUP BY mb.book_id LIMIT 10: `has', `1', `wants', `1', `has'<br><br>Instead i have to change the last part to be:<br>->search_related('mb',<br>
{ <br>
'mb_2.relation' => 'has',<br>
},<br>
{ group_by => ['mb_2.book_id']}<br>
);<br><br><br>So my question is, am I doing something wrong here which makes DBIC interpretate my query wrong, or am I supposed to keep track of the naming?<br>