2017-08-28 63 views
3

我有两张表,我需要得到两个表之间每个人的总数的条目数量。如何将两个计数查询连接在一起?

我需要将以下查询一起按名称分组。

select count(entryid) as table1count, reqname1 from table1 

而第二个查询:

select count(comid) as table2count, reqname2 from table2 

我将如何把这些结合在一起,让我结束了与输出这样的:

jsmith 236 
jsnow 13 
etc. 

有时同一reqname将在两表,但它只能在一个或另一个。所以我想显示两个表格之间的所有reqnames以及两个表格之间的总计数。

有关如何做到这一点的任何想法?

回答

2

你可以用它进行union all一个子查询,然后组数:

select name, count(id) 
from (
     select reqname1 as name, entryid as id from table1 
     union all 
     select reqname2, comid from table2 
    ) as combined 
group by name 
+0

谢谢!这很好。 – spacerobot

+0

还有一件事。我如何在日期范围检查中工作?假设我希望在date1在2017年8月21日到8/28/2017之间或date2在2017年8月21日到2017年8月28日之间获得相同结果? – spacerobot

+0

这是一个完全不同的问题:在选择这些日期字段后,在#2017-08-21#和#2017-08-28#之间添加'where date1#或#2017-08-21#和#2017-08- 28#'。如果你不能完成这项工作,请提出一个新问题。评论部分不适用于新问题。 ;-) – trincot

3

您可以使用UNION ALL

select count(entryid) as table1count, reqname1 from table1 
UNION ALL 
select count(comid) as table2count, reqname2 from table2 
+0

,当他们出现在两个表中这将产生重名。 – trincot