作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从类别+子类别+子子类别中获取文件总数
为此,我使用我的 View 编写了这种查询。
select ((select count(*) from view_category where 1=1)+ (select count(*) from view sub category where 1=1) + (select count(*) from view subsub category where 1=1)) as cnt
它的返回计数值。但我想知道是否有其他更好的方法可以获得相同的结果。
我尝试过这种方式,但它不起作用(How to SUM() multiple subquery rows in MySQL?)
select sum(int_val) from((select count(*) from view_category where 1=1) as int_val union(select count(*) from view sub category where 1=1)as int_val union(select count (*) 来自 view subsub category where 1=1) as int_val )
。
最佳答案
你不需要做一个联合,并且可以从别名中拥有自己的每一个......只要每个查询只返回一行,你就可以做各种疯狂的事情。通过忽略任何“连接”条件,您会得到笛卡尔结果,但是 1:1:1 的笛卡尔结果只会产生 1 条记录
select
ByCat.CatCount
+ BySubCat.SubCatCount
+ BySubSubCat.SubSubCatCount as Cnt
from
( select count(*) CatCount
from view_category ) ByCat,
( select count(*) SubCatCount
from view_sub_category) BySubCat,
(select count(*) SubSubCatCount
from view_subsub_category ) BySubSubCat
再想象一下,如果您也需要从其他元素中计算 sum() 或 AVG() 的数量……您可以将它们放在一行中,然后根据需要使用。
关于mysql - 如何在mysql中获取两个不同查询结果计数的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741680/
我是一名优秀的程序员,十分优秀!