Mysql 找到所有与克里斯托弗·诺兰合作拍摄的电影比其他任何导演都多的演员
我需要找到和诺兰一起拍电影比其他任何导演都多的演员 “这个查询将为我提供克里斯托弗·诺兰导演的电影”Mysql 找到所有与克里斯托弗·诺兰合作拍摄的电影比其他任何导演都多的演员,mysql,sql,Mysql,Sql,我需要找到和诺兰一起拍电影比其他任何导演都多的演员 “这个查询将为我提供克里斯托弗·诺兰导演的电影” select P1.PID, P1.Name, Movie.MID from Person P1 natural join M_Cast natural join Movie join M_Director on (Movie.MID = M_Director.MID) join Person P2 on (M_Director.PID = P2.PID) where P
select P1.PID, P1.Name,
Movie.MID
from Person P1 natural join M_Cast natural
join Movie join M_Director on (Movie.MID = M_Director.MID) join Person P2 on (M_Director.PID = P2.PID) where P2.Name='Christopher Nolan'
我没有真正测试它,但类似的东西应该可以工作:
SELECT *
FROM (
SELECT actor.name AS ActorName,
COUNT(CASE UPPER(dirct.name) WHEN 'CHRISTOPHER NOLAN' THEN 1 ELSE NULL END) AS WithNolan,
COUNT(CASE UPPER(dirct.name) WHEN 'CHRISTOPHER NOLAN' THEN NULL ELSE 1 END) AS NotNolan
FROM movie
JOIN m_cast
ON movie.mid = m_cast.mid
JOIN person actor
ON m_cast.pid = actor.pid
JOIN m_director
ON movie.mid = m_director.mid
JOIN person dirct
ON m_director.pid = dirct.pid
GROUP BY actor.name
)
WHERE WithNolan > NotNolan;
你需要一个分组依据来计数()。选择P1.PID,P1.Name,Movie.MID from Person P1 natural join M_Cast natural join Movie join M_Director on(Movie.MID=M_Director.MID)join Person P2 on(M_Director.PID=P2.PID),其中P2.Name='Christopher Nolan'分组依据P1.PID进行计数(Movie.MID)--这一个你知道你可以回答你的问题吗?SQL查询不应包含在注释中。是否可以包含表规范?不同实体之间的关系不是很清楚。您又这样做了:编辑您的问题,而不是将查询添加为注释如果您向我们显示数据集,我们可能可以在不使用WHERE子句的情况下进行checkTry并查看结果在不使用WHERE子句的情况下进行尝试,获得相同的结果,然后向我们显示数据集。显然,没有一部电影既有演员又有导演,更新了答案使其不区分大小写