MySQL使用例程输出连接表

MySQL使用例程输出连接表,mysql,stored-procedures,routines,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 `dista

我有一个程序叫做使用

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

我做错了什么?如何使用此操作的结果连接到另一个表?

否,您不能以这种方式执行“选择自”过程,但正如您所说的,该例程将创建一个临时表并将结果插入其中

在这种情况下,如果您已经知道临时表名,则从该表中执行
选择

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

select * from fn_runRoutine_Job()

从fn\u runRoutine\u Job()中选择*。。。存储函数在MySQL中只返回标量。没有“表值函数”。@MichaelSqlbot,没错,可能是我这边的失误。唯一的方法是使用一个临时表。谢谢,我意识到只需要一列,例如计算的距离,所以函数在这里就足够了。