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子句的情况下进行尝试,获得相同的结果,然后向我们显示数据集。显然,没有一部电影既有演员又有导演,更新了答案使其不区分大小写