MySQL-问题
我有三个存储过程,针对不同的条件和加入不同的表,会得到相同的结果集。
例如:
procedure_one(StartDate,EndDate);
procedure_two(StartDate,EndDate);
procedure_three(StartDate,EndDate);
我需要另一个存储过程,它将从上述三个存储过程中提供结果。简单地说,就是上述三个存储过程的联合。我不想要3个查询的联合,而是想要3个存储过程的联合。我在谷歌上搜索了一下,但没有找到好的解决方案。
我已经尝试了几次,如下所示:
DELIMITER //
CREATE PROCEDURE `MasterProcedure` (IN StartDate DATE,IN EndDate DATE)
BEGIN
SELECT @CALL procedure_one (StartDate,EndDate) UNION
SELECT @CALL procedure_two (StartDate,EndDate) UNION
SELECT @CALL procedure_three (StartDate,EndDate);
END //
DELIMITER ;
第二次尝试
DELIMITER //
DECLARE var_val1 TEXT;
DECLARE var_val2 TEXT;
DECLARE var_val3 TEXT;
CREATE PROCEDURE `MasterProcedure` (IN StartDate DATE,IN EndDate DATE)
BEGIN
SELECT @CALL procedure_one (StartDate,EndDate) INTO @var_val1;
SELECT @CALL procedure_two (StartDate,EndDate) INTO @var_val2;
SELECT @CALL procedure_three (StartDate,EndDate) INTO @var_val3;
SELECT @var_val1,@var_val2,@var_val3;
END //
DELIMITER ;
有没有任何解决办法来实现这个。提前感谢。