Excuse me if this is an obvious question, but I'm still learning the
DBIx::Class way & haven't had any luck finding answers...

Coming from the common DBI/hand-crafted sql route, I'm used to the world
where I could join a many-to-one table and easily access columns from
either table in the result.  E.g.:  SELECT author.name, book.title
FROM..., getting a hashref of the result, them doing something like:

print $row->{name}, " by ", $row->{title}, "\n"

etc.  Is there anyway to do this w/ DBI?

I have my relationships stated in the Schema files, so something like
this *does* work for me:

my $rs = $schema->resultset('Authors')->search(
  {user_id => 1 },
  {prefetch => 'books',
   '+select' => [ 'books.purchase_price',
                  'books.title',
                ],

   '+as' => [ 'purchase_price',
              'title',
            ],
   });

my @results = $rs->all;
foreach my $row (@results) {
  my $rs2 = $row->books;
  while (my $rel_row = $rs2->next) {
    print $rel_row->purchase_price, "\n";
  }
}


but it's not really what I want.  I could manually transform it, but
that seems like coding around my own ignorance.  Is there a way I could
get to close to something like:

foreach my $row (@results) {
  print $row->{name}, " by ", $row->{title}, "\n";
}


Thanks in advance.

-Bill


_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]

Reply via email to