MySQL Query, чтобы найти названия фильмов с актерами, чье имя начинается с B - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь написать MySQL Query, в котором можно найти названия фильмов под руководством актеров, чьи имена начинаются с B. У меня есть 2 таблицы, таблица актеров и таблица фильмов.В моей таблице Actor у меня есть actID и actName, а в моей таблице Movie - mvID, actID (FK), mvTitle, mvGenre, mvPrice, mvYear.Я уже написал запрос для аналогичной проблемы, и я пытался изменить его для этого запроса, но он не совсем работает.Пока что у меня есть:

SELECT mvTitle
FROM Movie
WHERE EXISTS (SELECT mvGenre
              FROM Movie,
                   Actor
              WHERE (Actor.actID = Movie.actID)
                and (Actor.actName LIKE 'B%'))

, который возвращает все заголовки фильмов, а не конкретные (как должно быть только 3 заголовка), но возвращает все 10 заголовков.

Ответы [ 3 ]

0 голосов
/ 18 февраля 2019

использовать коррелированный подзапрос

SELECT mvTitle
FROM Movie a
WHERE EXISTS (SELECT 1
              FROM Actor b
              WHERE a.actID = b.actID
                and b.actName LIKE 'B%')
0 голосов
/ 18 февраля 2019
SELECT mvTitle
FROM Movie where actID in (select actID from Actor where actName LIKE 'B%')
0 голосов
/ 18 февраля 2019
SELECT DISTINCT m.mvTitle from Movie m JOIN Actor a on a.actId = m.actId WHERE a.actName LIKE 'B%'

Попробуй это ... Вместо того, чтобы выбирать, я решил использовать соединение - мне кажется, это чище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...