SQL查询聚合多个查询

时间:2014-02-22 23:18:30

标签: mysql sql

我有一个类似的查询:

SELECT A.director, COUNT(*) as NumActors
FROM CanWorkWith A
GROUP BY A.director
HAVING COUNT(*) >= 5;

CanWorkWith表:

CanWorkWith(actor, director)

此查询将仅返回具有可以使用的ATLEAST 5 actor的控制器。

所以,现在我想获取此查询的结果,并搜索另一个表来计算导演所拥有的电影数量。

所以,如果导演有5个演员,那么我想在一个名为“

”的表格中搜索该导演
Movies (title, year, director, budget, earnings)

最后,归还导演,以及导演所拥有的TOTAL总数,为超过5位演员的所有导演执行此操作。

...谢谢

1 个答案:

答案 0 :(得分:2)

只需在此结果与返回每个导演的电影数量的查询之间进行加入。

这样的事情:

SELECT 
    M.director, 
    COUNT(M.title) as 'Number of movies',
    D.NumActors
FROM Movies M
    INNER JOIN (
        SELECT A.director, COUNT(*) as NumActors
        FROM CanWorkWith A
        GROUP BY A.director
        HAVING COUNT(*) >= 5
   ) D ON M.director = D.director
GROUP BY M.director, 
         D.NumActors