Domanda

Ho trovato le seguenti strutture di tabella mentre guardavo il tutorial di ruby ??on rails.

table actors
id  int  11  primary key auto_increment
name  varchar  30

table movies
id  int  11  primary key auto_increment
name  varchar  30

table actors_movies
actor_id  int  11
movie_id  int  11

Come posso effettuare una query per selezionare i film in cui è coinvolto un attore?

Non sto chiedendo ruby ??sul codice delle rotaie. Voglio l'attuale stringa di query mysql.

Grazie!

È stato utile?

Soluzione

una cosa da considerare è che stai per caricare l'oggetto dell'autore (a causa dei modelli RoR), quindi con l'ID sarebbe sufficiente:

select movies.id, movies.name
from movies inner join actors_movies
on actors_movies.movie_id=movies.id
where actors_movies.actor_id=$actor_id

Altri suggerimenti

Forse qualcosa del genere:

select m.name
from movies m
inner join actors_movies am on m.id = am.movie_id
inner join actors a on am.actor_id = a.id
where a.name = 'Christopher Walken'

Semplice, basta usare la tabella combinata per unire le tabelle film / attori:

Select m.name 
From actors a
Inner Join actors_movies am On am.actor_id = a.id
Inner Join movies m On m.id = am.movie_id
Where a.name = @your_actor
select m.* from movies m 
inner join actors_movies am on am.movie_id  = m.id 
inner join actors a on a.id = am.actor_id 
where a.someField = somevalue
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top