结合结果集

时间:2013-04-09 13:27:13

标签: mysql stored-procedures

我需要结合两个结果集:

--Resultset from Procedure 1
Date    Session Attendees
2013-04-09  Morning 2
2013-04-09  Noon    6

--Resultset from Procedure 2
Session Admitted
Morning 1
Noon    3

我需要结合两个程序的结果集。请提出一些建议,以便最终结果集如下:

--Date  Session Attendees   Admitted
2013-04-09  Morning 2   1
2013-04-09  Noon    6   3

我正在尝试这种方式,但它不起作用。请纠正我:

CREATE PROCEDURE test1_test2_combine()

BEGIN

 DECLARE @tmp_proc1 TABLE
 DECLARE @tmp_proc2 TABLE

  Call test1() ;
 INSERT INTO @tmp_proc1 
  Call test2() ;
 INSERT INTO @tmp_proc2


 Select @tmp_proc1.*, @tmp_proc2.Admitted from @tmp_proc1, @tmp_proc2
 Where @tmp_proc1.rownum = @tmp_proc2.rownum;

END

基本上我要做的是,从两个过程获取结果集并插入两个临时表并使用rownum组合它们。请指教。在此先感谢Krishna

1 个答案:

答案 0 :(得分:-1)

要获取所需的结果集,您需要加入这些主要结果集。这意味着,您可能会想到:

SELECT * FROM (CALL test_select_users) AS 'result1'

加入此:

SELECT * FROM (CALL test_select_users) AS 'result2'

但是,这是不可能的。 相反,您可以使用User-defined functionview代替程序。

一个过程可以返回多个结果集,每个结果集都有自己的模式。它不适合在SELECT语句中使用。