来自两个表的总记录数(按第三表的列分组)

时间:2019-03-21 21:42:54

标签: optimization mariadb inner-join multiple-tables

我有以下两个查询,这些查询返回主表中按时间段代码分组的子表的计数

  select b.period_code, count(*) from subA_main a inner join main b
on a.unique_id = b.unique_id
group by b.period_code;

select b.period_code, count(*) from SubB_main a inner join main b
on a.unique_id = b.unique_id
group by b.period_code;

我想将此作为一个查询来编写,并尝试了以下方法-

select a.period_code, count(b.unique_id) as SUbACnt, count(c.unique_id) as SubBCnt from main a 
inner join subA_main b on a.unique_id = b.unique_id
inner join SubB_main c on a.unique_id = c.unique_id
group by a.period_code;

在我杀死它之前,上述查询运行了1000秒钟以上,因为我怀疑它写得不好,即使没有记错。这个查询正确吗?如果是这样,有没有更好的书写方式?

两个子表都包含数百万条记录,这些记录按十几个周期进行分组。

0 个答案:

没有答案