Hi Dave,

package DB::Film;

...

# has many actors
__PACKAGE__->has_many('film_actor_maps' => 'DB::FilmActorMap', 'product');
__PACKAGE__->many_to_many('actors' => 'film_actor_maps', 'actor');

__PACKAGE__->belongs_to('director' => 'DB::Director');

...

my $rs = $db->resultset('Film')->search(
 {
   director => 39,
   'film_actor_maps.actor' => 2,
 },
 {
   join => ['film_actor_maps'],
 }
);

cheers,

J

Dave Cross wrote:
I've having a brain freeze trying to implement a query in DBIC. I'm sure I'm missing something obvious.

Here's the situation. Assume standard DBIC classes (created by Schema::Loader).

Four tables - Director, Film, Actor, ActorInFilm

A Director directs many Films.
A Film has many Actors
An Actor is in Films

So the ActorInFilm table models the many-to-many relationship between Actors and Films.

My problem is: given an actor and a director, get the list of films that they worked on together. So the result will be a resultset containing Film objects (or, alternatively, a list of Film objects).

I've been thinking about it too long and I can no longer think straight. Even explaining the problem in this email hasn't helped.

Please tell me what I'm missing.

Cheers,

Dave...

_______________________________________________
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]

_______________________________________________
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