首页 > 解决方案 > 如何从 MySql 查询的结果中获取计数,其中每个结果本身都是不同的表?

问题描述

我有一个 Mysql 查询的结果集,如下所示:-

select concat(category_name,subcategory_name) from category

返回的结果是这样的:--

电影喜剧电影汽车体育汽车节目
喜剧
节目

这 3 个结果本身就是不同的表。
我想对这些表执行 Count() 得到结果,即检查这些表是否包含任何数据。
PS - 我正在使用 MySQl 5.6

标签: mysqlsqldatabasemysql-workbench

解决方案


如果我正确理解您的评论,您可以select像这样编写子查询子查询。

SELECT (SELECT COUNT(*) FROM MovieComedyMovies) AS MovieComedyMovies,
       (SELECT COUNT(*) FROM CarsSportsCars) AS CarsSportsCars

但从你的问题来看,你可能想要这样做。

CASE WHENSUM功能。

select SUM(CASE WHEN concat(category_name,subcategory_name) = 'MovieComedyMovies' THEN 1 ELSE 0 END),
       SUM(CASE WHEN concat(category_name,subcategory_name) = 'CarsSportsCars' THEN 1 ELSE 0 END)
from category

编辑

从你的评论我猜你可以试试这个。

select concat(category_name,subcategory_name),count(*)  
from category
Group by concat(category_name,subcategory_name) 

推荐阅读