如何从MySql查询的结果中获取计数,其中每个结果本身就是一个不同的表?

时间:2018-07-06 07:27:20

标签: mysql sql database mysql-workbench

我有一个类似mysql查询的结果集:-

select concat(category_name,subcategory_name) from category

正在返回类似这样的结果:--

电影喜剧电影
CarsSportsCars
ShowsComedyShows

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

2 个答案:

答案 0 :(得分:0)

如果我正确理解了您的评论,您可以像这样在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) 

答案 1 :(得分:0)

我出于历史目的复制您的示例查询:

select concat(category_name,subcategory_name) from category

假设这仍然是查询数据:

SELECT count(Name) as Total, Name 
FROM (
       select concat(category_name,subcategory_name) as Name from category
     ) data
group by Name

遵循这些原则。如果您可以使用fiddle构建MCVE,则可能会得到更具体的答案。