my $grporg_rs = $schema->resultset('GrpOrg'); my $thing = [ $grporg_rs->search_rs( { }, { result_class => 'DBIx::Class::ResultClass::HashRefInflator', select => [ qw/me.org grp_own.owner/ ], join => 'grp_own', } )->search_rs( { }, { select => [ qw/groups.name/ ], join => 'groups' } )->all ];

i've also tried to use ->search_related. my schema looks like: GrpOrg.pm: __PACKAGE__->has_many( "grp_own", "Nais::Schema::Result::GrpOwn", { "foreign.org_id" => "self.id" }, { cascade_copy => 0, cascade_delete => 0 }, ); GrpOwn.pm: __PACKAGE__->has_many( "groups", "Nais::Schema::Result::Group", { "foreign.own_id" => "self.id" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->belongs_to( "grp_org", "Nais::Schema::Result::GrpOrg", { id => "org_id" }, { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, ); Groups.pm: __PACKAGE__->has_many( "grp2ais", "Nais::Schema::Result::Grp2ai", { "foreign.gpk" => "self.gpk" }, { cascade_copy => 0, cascade_delete => 0 }, );