Как запросить базу данных, чтобы вернуть фильмы, в которых играл определенный актер? - PullRequest
0 голосов
/ 28 сентября 2018

База данных выглядит следующим образом:

actors(PK(AID), name) 

movies(PK(MID), name) 

actor_role(FK(MID), FK(AID), rolename) 

и одно из имен актеров - «Чарли Чаплин», и мне нужно, чтобы он возвратил фильмы, в которых он снялся, и я не могу получить запросверни это.

Текущий запрос, который у меня есть,

select movie.name
from movies, actors
where actors.name = 'Charlie Chaplin'

, и он просто возвращает все фильмы, а не те, которые были характерны для него, действующего в них.

Ответы [ 3 ]

0 голосов
/ 28 сентября 2018

Я думаю, что это ваш запрос:

select M.name
from movies M
  join actor_role AR on AR.MID = M.MID
  join actors A on A.AID = AR.AID
where A.name = 'Charlie Chaplin'
0 голосов
/ 28 сентября 2018

актеры и фильмы не имеют отношения, вы должны использовать actor_role для объединения актеров и фильмов

    SELECT movie.name
    FROM actor_role as ar
         inner join actors as a
         on ar.AID = a.AID
         INNER JOIN movies as m 
         ON ar.MID = 
    WHERE a.name = 'Charlie Chaplin'
0 голосов
/ 28 сентября 2018

Внутреннее соединение:

SELECT movie.name
FROM movies, actors, actor_role
WHERE actors.name = 'Charlie Chaplin' AND
    movies.MID = actor_role.MID AND
    actors.AID = actor_role.AID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...