首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL按不同表的总和排序

MYSQL按不同表的总和排序
EN

Stack Overflow用户
提问于 2016-08-27 04:10:07
回答 3查看 54关注 0票数 1

我有两张表:

cat_seriale -表示系列类别,并为每个类别提供ID,如: 1、2、3、4、5。

seriale -这是真正的电视连续剧,每个电视连续剧都属于一个类别。

我在试着

代码语言:javascript
复制
SELECT * FROM cat_seriale WHERE `id`='1' 

此外,对于所有列,还显示串行表中所有行的views列的总和。

如果有人能帮我,那就太好了。

提前谢谢。

模式:

代码语言:javascript
复制
cat_seriale columns: 
Primary Key - catid(int)
catname (varchar)
...

seriale columns:
Primary Key - id(int)
cat (int)
views(int)

我需要选择cat_seriale where ID = 1,并在seriale列中选择sum of views,其中cat与cat_seriale中的id相同。

EN

回答 3

Stack Overflow用户

发布于 2016-08-27 04:20:48

如下所示:

代码语言:javascript
复制
select *, (select sum(views) from seriale S where S.cat=C.catid) as sum_views
  from cat_seriale C
 where id='1'
 order by sum_views
票数 1
EN

Stack Overflow用户

发布于 2016-08-27 04:35:33

把这两张表连接起来。

代码语言:javascript
复制
SELECT c.*, SUM(s.views) AS views
FROM cat_seriale AS c
LEFT JOIN seriale AS s ON c.catid = s.cat
WHERE c.id = `1`
GROUP BY c.catid
票数 1
EN

Stack Overflow用户

发布于 2016-08-27 04:35:39

@Mike answer +1,但此版本具有更高的性能:

代码语言:javascript
复制
SELECT c.*, SUM(s.views) as summary
FROM cat_seriale c
LEFT JOIN seriale s ON s.cat = c.catid
WHERE c.id = '1'
GROUP BY c.catid 
ORDER BY summary
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39173998

复制
相关文章

相似问题

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