Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL按不同表之和排序_Mysql - Fatal编程技术网

MYSQL按不同表之和排序

MYSQL按不同表之和排序,mysql,Mysql,我有两张桌子: cat_seriale-表示序列类别,并为每个类别提供ID,如:1、2、3、4、5 连续剧-这是实际的电视连续剧,每个电视连续剧属于一个类别 我正在努力 SELECT * FROM cat_seriale WHERE `id`='1' 此外,对于所有列,显示串行表中所有行的视图列的总和 如果有人能帮我,那就太好了 提前谢谢 模式: cat_seriale columns: Primary Key - catid(int) catname (varchar) ... ser

我有两张桌子:

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

连续剧-这是实际的电视连续剧,每个电视连续剧属于一个类别

我正在努力

SELECT * FROM cat_seriale WHERE `id`='1' 
此外,对于所有列,显示串行表中所有行的
视图
列的总和

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

提前谢谢

模式:

cat_seriale columns: 
Primary Key - catid(int)
catname (varchar)
...

seriale columns:
Primary Key - id(int)
cat (int)
views(int)
我需要选择ID=1的cat_serial,并选择cat与cat_serial中ID相同的序列列中的视图总和。

如下所示:

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
把这两张桌子连接起来

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表示@Mike answer,但此版本具有更高的性能:

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

cat_serial
serial
表提供架构。完成;)希望一切顺利,这是我第一次解释mysql问题
SELECT cat_serial.*,SUM(serial.views)FROM cat_serial LEFT JOIN serial ON serial.cat=cat_serial.catid其中cat_serial.catid=1
?最后我得到了这个:SELECT*,SUM(serial.views)FROM cat_serial LEFT JOIN serial ON serial.cat=catid其中catid=1@Mike:没有,你不知道-这里我们是根据
WHERE
条件过滤(通过
cat_serial
的PK)对所有行进行分组的。根据你在
WHERE
子句中选择的同一字段进行分组有什么意义?谢谢,@Barmar,是这样的typo@Barmar如果没有分组方式,将只显示一行。@RuslanDascal是关于上一次编辑的。他在
中使用了与
GROUP BY
相同的列,因此只会显示一行。