令人难以置信的简单SQL问题

Sti*_*MAN 1 mysql sql stored-procedures mysql-error-1054

我试图写出表面上应该是相对简单的SQL查询 - 然而,我无法让它们发挥作用.

是否可以编写如下所示的查询:

select t.name 
  from (select * 
          from mystoredproc(1,2,3) as t) 
 where t.name = 'foobar'
Run Code Online (Sandbox Code Playgroud)

上述查询存在两个问题:

1)首先,上述声明起作用.我的db引擎(mySQL)抱怨:

ERROR 1054(42S22):'字段列表'中的未知列't.name'

2)我想在SELF JOIN中使用返回的表t.但是,我不想再次调用mystoredproc(...),因为这是一个非常昂贵的电话.

任何人都知道如何解决这些问题?

顺便说一句,即使我正在使用mySQL(现在),我更愿意,如果任何提供的SQL片段是db不可知的(即ANSI SQL)

Dan*_*oap 11

更换) as t)) t,如

select t.name from (select * from mystoredproc(1,2,3)) t where t.name = 'foobar'
Run Code Online (Sandbox Code Playgroud)

对于您的第二个问题:将结果从mystoredproc临时表中SELECT提取出来,然后您就可以轻松地进行自我连接.