mysql - 找出所有与克里斯托弗·诺兰合作的电影比其他任何导演都多的演员
问题描述
我需要找到与诺兰合作的电影比其他任何导演都多的演员。
“这个查询会给我克里斯托弗诺兰导演的电影”
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;
推荐阅读
- python-3.x - 我无法理解该名称错误的原因
- php - 如何在不影响 PHP 中的第一个函数的情况下执行第二个函数?
- python-3.x - 将可变数量的 args 传递给 python 脚本
- sql-server - 什么是 Microsoft.SqlServer.Dac.dll 和用途?
- php - 如何从同一列中分离数据
- java - 如何获取服务器对在 Android Studio (Java) 中调用请求的方法的响应
- python - 关键 - 在 Travis CI 中运行时出错| pytest
- jquery - 如何使用jquery从json文件中获取每个值的计数
- java - 这
groupByKey(...) 中的类在其成员中有一个 Map。groupByKey 操作因“不可比较”问题而失败 - sql-server - 无法为 C# 应用程序的远程桌面创建连接字符串