1
我想写什么应该表面上,是相对容易的SQL查询 - 但是,我不能让他们工作。令人难以忍受的SQL问题
是否可以编写一个查询,看起来像这样:
select t.name
from (select *
from mystoredproc(1,2,3) as t)
where t.name = 'foobar'
两个问题上面的查询:
1)首先关闭所有,上述dosent工作的陈述。我的数据库引擎(MySQL的)抱怨:
ERROR 1054(42S22):在 '字段列表'
2)我想使用返回表t未知列 't.name' 在一个自我加入。但是,我不想让 必须再次调用mystoredproc(...) ,因为它非常昂贵的调用。
任何人都知道如何解决这些问题?
顺便说一句,即使我使用MySQL的(现在),我宁愿如有递上SQL代码段是数据库无关的(即ANSI SQL)
不错...潜在的问题,虽然这是一个网络后端,我需要区分成功的调用。我正在考虑为每组记录自动生成一个密钥,但我可能会过分复杂 - 这里有任何想法..? – 2009-12-19 17:49:18
只有在创建临时表时才会看到临时表。所以,即使你有几个并发调用,所有的CREATE TEMPORARY TABLE myTempTable,每个连接都只能访问该表中的自己的一组数据。尽管您可能需要使用事务,否则该表可能会在查询中消失。 – 2009-12-19 17:54:11
请查阅使用说明书:http://dev.mysql.com/doc/refman/5.0/en/create-table.html – 2009-12-19 17:55:05