my $sth = $dbh->prepare( qq|SELECT requests.id, requests.name, requests.requestor, requestors.name, requestors.email FROM requests LEFT JOIN requestors ON requests.requestor = requestor.id| ); my $list = $sth->fetchall_arrayref({}); #### my $sth = $dbh->prepare( qq|SELECT request.id, request.daterequested, request.requestor, request.producer, requestor.name, requestor.email, producer.name, producer.email LEFT JOIN requestor ON request.requestor = requestor.id LEFT JOIN producer ON request.producer = producer.id | ); my @mapping = qw/ request.id request.daterequested request.requestor request.producer requestor.name requestor.email producer.name producer.email/ ; $sth->execute(); my $arrayref = $sth->fetchall_arrayref(); my @mapped = map { my %mapto; @mapto{@mapping} = @$_; \%mapto; } @$arrayref;