1

我有一个称为使用的例程

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

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

4

1 回答 1

1

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

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

select * from temporary_table_name

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

select * from fn_runRoutine_Job()
于 2015-12-27T20:25:08.063 回答