MySQL使用例程输出加入表

时间:2015-12-27 19:56:59

标签: mysql stored-procedures routines

我有一个使用

调用的例程
SET @p0='55'; SET @p1='-6'; SET @p2='100'; CALL `distanceSearch`(@p0, @p1, @p2);

基本上我通过纬度,经度和距离来搜索用户,例如100英里。例程创建临时表并将结果插入其中。当我执行它时,返回一个结果集。

当我尝试执行它时,我遇到语法错误

SET @p0='55'; SET @p1='-6'; SET @p2='100'; 
select foo.* from (CALL `distanceSearch`(@p0, @p1, @p2)) as foo

我做错了什么?如何使用此结果加入另一个表?

1 个答案:

答案 0 :(得分:1)

不,你不能像那样执行某个程序的选择但正如你所说例程创建一个临时表并将结果插入其中

在这种情况下,如果您已经知道临时表名,那么从该表中执行SELECT

select * from temporary_table_name

否则,将您的例程转换为表值函数而不是存储过程,然后您可以说

select * from fn_runRoutine_Job()