Comment interroger plusieurs-à-plusieurs?
-
07-07-2019 - |
Question
J'ai trouvé les structures de table suivantes pendant que je regardais le didacticiel 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
Comment faire une requête pour sélectionner les films dans lesquels un acteur est impliqué?
Je ne demande pas le code ruby ??on rails. Je veux la chaîne de requête mysql réelle.
Merci!
La solution
Une chose à considérer est que vous allez charger l'objet auteur (à cause des modèles RoR), donc avec l'ID suffirait:
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
Autres conseils
Peut-être quelque chose comme ceci:
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'
Simple, utilisez simplement la table combinée pour rejoindre les tables film / acteur:
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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow