在mysql中创建临时表的存储过程

时间:2016-04-25 13:42:51

标签: mysql stored-procedures

CREATE PROCEDURE getpatientclaim(IN idd int)  BEGIN 

create temporary table spec(patient_id int,claim_id int,procedure_code int);

insert INTO spec SELECT p.patient_id,p.claim_id,p.procedure_code FROM 
payment p LEFT JOIN patient_visit_cpt pvc ON p.patient_id = pvc.patient_id
WHERE p.claim_id = idd; 
END

它成功创建,我试图调用这样的程序

call getpatientclaim(4963);

输出如下:

  

它返回了一个空的结果集。

select查询返回许多行,但在过程中它返回空。请帮忙

1 个答案:

答案 0 :(得分:1)

添加

SELECT * FROM `spec`;

在您的程序正文结束时(END之前)。

但你真的需要一个临时表吗?只是

CREATE PROCEDURE getpatientclaim(IN idd int)  BEGIN 
     SELECT p.patient_id,p.claim_id,p.procedure_code 
     FROM payment p LEFT JOIN patient_visit_cpt pvc ON p.patient_id = pvc.patient_id
     WHERE p.claim_id = idd; 
END

会产生相同的结果。 (在这种情况下,VIEW可能更合适。)

相关问题