首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择片场、演员和在某一工作室制作的电影数量

选择片场、演员和在某一工作室制作的电影数量
EN

Stack Overflow用户
提问于 2014-11-02 21:09:09
回答 1查看 313关注 0票数 2

我继续与MySQL的经验,并有下一个。我需要选择演员的名字,谁在电影中主演的某间工作室。其中包括由演员主演的电影制片厂的电影数量。结果以表格的形式表示,列如下:"Studio“、"Actors”、"Number of films“。我有三张桌子:演员,工作室和电影。演员和电影有多对多的关系,制片厂和电影有多到多的关系.演员和工作室没有关系。这样我就可以选择工作室演员和电影了。

代码语言:javascript
运行
复制
SELECT studios.title, CONCAT_WS(' ', actors.name, actors.surname), films.title 
FROM studios
JOIN studios_films ON studios.id = studios_films.studio_id
JOIN films ON films.id = studios_films.film_id
JOIN films_actors ON films.id = films_actors.film_id
JOIN actors ON actors.id = films_actors.actor_id 

但是,我怎么才能获得演员主演的电影公司的片名,而不是片名呢?我想我必须使用聚合(组)函数计数。但是当我在查询中使用它时

代码语言:javascript
运行
复制
SELECT studios.title, CONCAT_WS(' ', actors.name, actors.surname), COUNT(films.id) 
FROM studios
JOIN studios_films ON studios.id = studios_films.studio_id
JOIN films ON films.id = studios_films.film_id
JOIN films_actors ON films.id = films_actors.film_id
JOIN actors ON actors.id = films_actors.actor_id
GROUP BY filmstudios.id 

我不明白,我想要什么。你能帮我创建查询吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-02 21:18:25

可以在多列中使用GROUP BY子句。通过这种方式,您可以计算每个制片厂/演员组合的电影数量。

完整的查询如下所示:

代码语言:javascript
运行
复制
SELECT studios.title, CONCAT_WS(' ', actors.name, actors.surname), COUNT(films.id) 
FROM studios
JOIN studios_films ON studios.id = studios_films.studio_id
JOIN films ON films.id = studios_films.film_id
JOIN films_actors ON films.id = films_actors.film_id
JOIN actors ON actors.id = films_actors.actor_id
GROUP BY studios.id, actors.id

您可以在这里阅读更多关于GROUP BY子句中多列的内容:

关于SO:Using group by on multiple columns的问题

教程:http://dba.fyicenter.com/faq/mysql/Use-Multiple-Columns-in-GROUP-BY.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26704440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档