我有这些表格:
电影(id
,name
)
演员(idmovie
,actor
)
我想计算每部电影的演员数量,然后才能获得超过10位演员的电影。我有一个查询来计算每部电影的演员数量,如下所示:
SELECT idmovie, count(actor) FROM Cast GROUP BY idmovie HAVING count(actor) > 10;
现在,我想知道如何获得该结果并将其加入到Movies表中。 我试过了:
SELECT name FROM Movies INNER JOIN (SELECT idmovie FROM Cast GROUP BY idmovie HAVING count(actor) >2) Cast ON Cast.idmovie = Movies.id;
但它不起作用。
我还必须把它翻译成关系代数。
π name (σ (count(σ id = idmovie))) Movies⨝Cast
这显然是错误的......
任何帮助?
答案 0 :(得分:0)
查询对我来说是正确的,除非您使用Cast
对嵌套查询进行别名,这也是表的名称。我不确定它有什么影响,但我希望它能混淆MySQL。请尝试以下方法:
SELECT name FROM Movies INNER JOIN
(SELECT idmovie FROM Cast GROUP BY idmovie HAVING count(actor) >2) CastCount
ON CastCount.idmovie = Movies.id;
我没有尝试过,但我认为这样可行
答案 1 :(得分:0)
试试这个......
SELECT m.name, COUNT(c.actor) AS 'ActorsCount'
FROM Movies m INNER JOIN [Cast] c ON m.id = c.idmovie
GROUP BY m.name HAVING COUNT(c.actor) > 10;