如何使这个MySQL查询更有效?子查询/左连接

时间:2015-06-12 18:51:03

标签: mysql

我正在寻求帮助以更快地进行查询 -

{{1}}

http://pastebin.com/DDSpGFWQ

要了解此查询的应用,我将使用它来填充此链接中的公园 - http://www.wdwhelper.com。如果您需要其他信息,请告诉我们。

我也在寻找关于子查询T5的具体帮助 - 我想获得每次骑行的最新(最后添加到DB)waitTime - 任何想法如何可能?谢谢!

1 个答案:

答案 0 :(得分:0)

只需用一个子查询代替四个,然后一次读取表格而不是四次, 你将节省3/4(75%)的时间:

SELECT ride , 
   Avg( CASE WHEN dayofweek = '" . $dow . "' THEN waittime END) AS dayWait,
   Avg( CASE WHEN currenttime >= '" . $minusTime . "' 
                  AND currenttime <= '" . $plusTime . "' 
        THEN waittime END) AS dayWait,  
   Avg( CASE WHEN currenttime >= '" . $minusTime . "' 
                  AND currenttime <= '" . $plusTime . "' 
                  AND dayofweek = '" . $dow . "' 
        THEN waittime END) AS dayWait,
    waittime AS currentWait                     
FROM   waits 
GROUP  BY ride