2012-08-01 28 views
1

我想返回循环select语句的过程中的单个数据集。在我的具体情况下,我试图在两个日期之间获取每行每个日期的值。循环mysql选择查询时的联合结果

SET @end = DATE(NOW()); 
SET @start = DATE_ADD(NOW(),INTERVAL -3 MONTH); 
SET @today = @start; 

REPEAT 
    SELECT a, (SELECT latest b value on @today) as b FROM table; 
    @today = DATE_ADD(NOW(),INTERVAL +1 DAY); 
UNTIL @today => @end END REPEAT; 

当包装在一个过程中,并调用我得到一个单独的数据集返回每个循环。我想要一个包含所有结果'UNIONed'的数据集。

回答

1

为什么不....

SELECT * 
FROM `table` t 
WHERE t.date BETWEEN DATE_ADD(NOW(),INTERVAL -3 MONTH) AND NOW() 
ORDER BY t.date; 
+0

不创建一个新的行/记录的每一天(我有一个嵌套的选择查询,将得到的日期的最新值)。我需要能够逐步完成每一天并拍摄快照(如果不存在,则获取最新的行),然后将结果拼接在一起。 – greenafrican 2012-08-01 12:55:23

+0

我不明白 - 你能用一个例子更新这个问题吗? – symcbean 2012-08-01 22:47:36