例如像下面这两个存储过程,结果集字段只有两个不一样,存储过程是以前的人遗留的,无法更改,想把两个存储过程的结果合并到一个,类似两个select语句的union all的那种效果。
CALL reportCashireResidential_ghana_summary('','','2017-01-01','2017-01-01','00000')
CALL reportCashireNonResidential_ghana_summary('','','2017-01-01','2017-01-01','00000')
新建一个临时表,然后将存储过程执行后的查询结果插入到临时表中,最后查询临时表。注:这个过程可以写到一个新的存储过程中。
DROP procedure IF EXISTS `myproc`;
DELIMITER $$
USE `school`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `myproc`(OUT s int)
begin
SELECT COUNT(*) INTO s FROM new_table_test;
end$$
DELIMITER ;
两个存储过程的结果集合,这个那个存储过程要一起调用
把这两个存储过程改造成函数,就可以用union合并结果集了。