wie viele-zu-viele abzufragen?
-
07-07-2019 - |
Frage
Ich fand die folgenden Tabellenstrukturen, während ich Ruby on Rails-Tutorial beobachtet wurde.
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
Wie kann ich eine Abfrage Filme auszuwählen, die ein Schauspieler beteiligt ist?
Ich frage nicht für Ruby on Rails-Code. Ich mag den aktuellen MySQL Query-String.
Danke!
Lösung
eine Sache zu prüfen ist, dass Sie den Autor Objekt laden werden (wegen der RoR-Modelle), so mit der ID würde ausreichen, um:
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
Andere Tipps
Vielleicht so etwas wie folgt aus:
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'
Einfach, benutzen Sie einfach die kombinierte Tabelle sind die Film / Schauspieler Tabellen zu verknüpfen:
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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow