[Catalyst] has_many but no left join?!

Stephen Shorrock stephen.shorrock at gmail.com
Tue Jun 18 17:58:13 GMT 2013


Thanks Robert.

I've attempted to extract the relevant relationship from my code, though
when i use it i intend to group by and test for a not exists via matching a
null row with the left join.  I really need to have a left join in this
relationship. It appears to be working for other has_many relationships but
not under these circumstances. I wondered whether any knew of any
conditions that might prevent it from working.

Best wishes
Stephen
On Jun 18, 2013 6:45 PM, "Robert Wohlfarth" <rbwohlfarth at gmail.com> wrote:

> On Tue, Jun 18, 2013 at 11:54 AM, Stephen Shorrock <
> stephen.shorrock at gmail.com> wrote:
> <snip>
>
>> then (in Cat app)
>> $c->model('MyApp::IndexStatus')->search_related('old_statuses');
>>
>> produces SQL something like:
>> SELECT me.myindex, me.myoldindex, me.mystatus FROM index_statuses me
>> JOIN index_statuses old_statuses ON old_statuses.myindex =3D me.myoldind=
ex:
>>
>> even adding {join_type=3D>'LEFT'} to the arguments of has_many does not
>> produce a left join.
>>
>
> It looks like the code asks for "all MyApp::IndexStatus with matching
> old_statuses records". That translates into an INNER JOIN.
>
> If you're looking for "all MyApp::IndexStatus records along with any
> related old_statuses records", try something like this:
> foreach my $index_status ($c->model('MyApp::IndexStatus')->all) {
>     # Generate the HTML here with columns from $index_status...
>     foreach my $old_status ($index_status->old_statuses->all) {
>         # Generate the HTML here for any $old_status records...
>     }
> }
>
> --
> Robert Wohlfarth
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20130618/49b0c=
0c5/attachment.htm


More information about the Catalyst mailing list