斯切玛
SELECT p1.pid,
p1.NAME,
Count(movie.mid) AS movieswithyc
FROM person AS p1 natural
JOIN m_cast natural
JOIN movie
JOIN m_director
ON (
movie.mid = m_director.mid)
JOIN person AS p2
ON (
m_director.pid = p2.pid)
WHERE p2.NAME LIKE 'Yash Chopra'
GROUP BY p1.pid
HAVING Count(movie.mid) >ALL
(
SELECT Count(movie.mid)
FROM person AS p3 natural
JOIN m_cast
INNER JOIN movie
JOIN m_director
ON (
movie.mid = m_director.mid)
JOIN person AS p4
ON (
m_director.pid = p4.pid)
where p1.pid = p3.pid
AND p4.NAME NOT LIKE 'Yash Chopra'
GROUP BY p4.pid)
ORDER BY movieswithyc DESC;
我没有得到正确的输出。我已经没有排了。有人可以修改以上的查询,给我正确的输出,我尝试了各种查询,但没有得到任何东西
5条答案
按热度按时间vecaoik11#
检查此项:
4ngedf3f2#
您可以检查下面的sql。
说明-第一个内联视图返回带有“yash chopra”的电影计数的人员列表。第二个内联视图返回具有与其他导演的电影计数的人员列表。最后,我筛选出那些“亚什·乔普拉”的电影数量比“其他导演”多的人。
d7v8vwbk3#
这似乎是山塔努先生给出的答案。但是你知道为什么这需要时间吗,我在一个小时前运行了这个查询,但还没有reult生成。
afdcj2ne4#
p2.name像'yash chopra'和p1.pid这是代码中的一行。您应该像这样编写trim(p2.name)、trim(p1.pid),因为movie表中的name和pid包含空格之类的内容。您应该正确处理它,否则它将返回零行,请记住这一点。
7xllpg7q5#