使用SubQueries查询2个表的总和

Jer*_*con 2 mysql optimization join subquery

我的分析团队使用如下查询:

SELECT 
    SUM(ul.upload_bandwidth) + SUM(dl.download_bandwidth) AS total 
FROM 
    upload_facts ul, download_facts dl
WHERE 
    ul.date BETWEEN '2011-09-01' AND '2011-09-30' AND 
    dl.date BETWEEN '2011-09-01' AND '2011-09-30';
Run Code Online (Sandbox Code Playgroud)

由于正在发生的"连接",这需要很长时间,超过12000秒.

从两个表中分别进行总和只需几秒钟.我正在考虑每天将一笔金额放入一张单独的表中以加快速度.但是,我认为应该比这更容易.

我想消除连接并使用子查询来做到这一点,但是我不是100%肯定如何.我尝试了以下,但它没有用.

SELECT 
    (select upload_bandwidth from upload_facts where date 
      BETWEEN '2011-09-01' AND '2011-09-30') 
    + 
    (select download_bandwidth from downloaded_facts where date 
      BETWEEN '2011-09-01' AND '2011-09-30');
Run Code Online (Sandbox Code Playgroud)

Nie*_*sol 7

SELECT
    (SELECT SUM(`upload_bandwidth`) FROM `upload_facts` WHERE `date` 
      BETWEEN '2011-09-01' AND '2011-09-30')
    +
    (SELECT SUM(`download_bandwidth`) FROM `download_facts` WHERE `date` 
      BETWEEN '2011-09-01' AND '2011-09-30')
AS `total`
Run Code Online (Sandbox Code Playgroud)

应该这样做.