MySQL-質問
異なる条件に対して同じ結果セットを提供し、異なるテーブルを結合する 3 つのストアド プロシージャがあります。
元
procedure_one(StartDate,EndDate);
procedure_two(StartDate,EndDate);
procedure_three(StartDate,EndDate);
上記の 3 つのストアド プロシージャの結果を返す別のストアド プロシージャが必要です。上記の 3 つのストアド プロシージャを単純に結合します。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 ;
これを達成するための回避策はありますか。前もって感謝します。