我正在尝试编写一个MySQL查询,它将查找名字以B开头的演员所领导的电影的标题。我有两个表,一个演员表和一个电影表。在我的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个标题。
发布于 2019-02-18 20:40:55
SELECT mvTitle
FROM Movie where actID in (select actID from Actor where actName LIKE 'B%')发布于 2019-02-18 20:34:34
SELECT DISTINCT m.mvTitle from Movie m JOIN Actor a on a.actId = m.actId WHERE a.actName LIKE 'B%'试试这个..。我选择使用join而不是seems -它对我来说似乎更简洁。
发布于 2019-02-18 20:34:55
使用相关子查询
SELECT mvTitle
FROM Movie a
WHERE EXISTS (SELECT 1
FROM Actor b
WHERE a.actID = b.actID
and b.actName LIKE 'B%')https://stackoverflow.com/questions/54747365
复制相似问题