MySQL查询可查找演员姓名以B开头的电影的标题

时间:2019-02-18 12:31:15

标签: mysql sql

我正在尝试编写一个MySQL查询,该查询将查找名称以B开头的演员领导的电影的标题。我有2个表,一个Actor Table和Movie Table。在我的Actor表中,我有actID和actName,在我的电影表中,我有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 :(得分:2)

SELECT DISTINCT m.mvTitle from Movie m JOIN Actor a on a.actId = m.actId WHERE a.actName LIKE 'B%'

尝试......我选择使用联接,而不是子选择-对我来说似乎更干净。

答案 1 :(得分:2)

使用相关子查询

SELECT mvTitle
FROM Movie a
WHERE EXISTS (SELECT 1
              FROM Actor b
              WHERE a.actID = b.actID
                and b.actName LIKE 'B%')

答案 2 :(得分:1)

SELECT mvTitle
FROM Movie where actID in (select actID from Actor where actName LIKE 'B%')