2013-01-07 42 views
0

我有2种我希望能够加入的复杂查询,但不太确定执行它的语法。如何加入这2个mysql查询?

查询1:

select month(Date_1) as Date_1, 
     sum(number_1) as number_1 
    from table_1 
    where Date_1 between '2012-01-01' and '2013-01-01' 
    group by month(Date_1); 

其给出如下结果:

enter image description here

问题2:

select count(distinct number_2) as number_2, 
     month(Date_2) as Date_2 
    from table_2 
    where Date_2 between '2012-01-01' and '2013-01-01' 
    group by month(Date_2) 
    order by month(Date_2) desc; 

其给出如下结果:

enter image description here

我想加入这两个查询,以便number_1与number_2匹配,因为Date_1和Date_2的列相同。每月一行。

有谁知道该怎么做?

+0

你的意思是你想要两个数字在一行,连同他们的匹配日期,如1 964789.36 137? – Melanie

+0

是的,这是我想要的,下面的答案解决了这个问题。 –

回答

1
select T1.Date_1, T1.number_1, T2.number_2 from 

(select month(Date_1) as Date_1, 
     sum(number_1) as number_1 
    from table_1 
    where Date_1 between '2012-01-01' and '2013-01-01' 
    group by month(Date_1))T1 

inner join 

(select count(distinct number_2) as number_2, 
     month(Date_2) as Date_2 
    from table_2 
    where Date_2 between '2012-01-01' and '2013-01-01' 
    group by month(Date_2) 
    order by month(Date_2) desc)T2 

on T1.Date_1 = T2.Date_2; 

本质上,在该月加入两个临时表(由查询形成)。

+0

非常好,应该知道的,谢谢! –