$c->stash->{routes} = [$c->model('QDB::Route')->search( { 'n_1.net_id' => $c->stash->{net_id}, }, { alias => 'rt', # alias columns in accordance with "from" from => [ { rt => 'vi_route' }, [ { n_1 => 'vi_nodes', -join_type => 'inner' }, { 'rt.route_beg' => 'n_1.node_id', 'rt.net_id' => 'n_1.net_id' } ], [ { n_2 => 'vi_nodes', -join_type => 'inner' }, { 'rt.route_end' => 'n_2.node_id', 'rt.net_id' => 'n_2.net_id' } ], ], 'select' => [ 'rt.route_beg', 'rt.route_end', \'n_1.node_name AS node_name_beg', \'n_2.node_name AS node_name_end', \'COUNT(rt.route_beg) as grp_count', ], 'as' => [ qw/ route_beg route_end node_name_beg node_name_end route_grp_count / ], 'group_by' => [qw/ rt.route_beg rt.route_end node_name_beg node_name_end /], }, )];