MYSQL按不同表之和排序
我有两张桌子: cat_seriale-表示序列类别,并为每个类别提供ID,如:1、2、3、4、5 连续剧-这是实际的电视连续剧,每个电视连续剧属于一个类别 我正在努力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
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
相同的列,因此只会显示一行。