/* result 1 */
select Id, Name
from Items
/* result 2 */
select Id,
Alias
from ItemAliases
where Id in (
select Id, Name
from table abc
)
我们使用SQL Server 2008。
使用上面的例子,我应该非常简单。
我需要返回查询1的结果...并返回查询2的结果。
但是,查询2需要过滤以仅包含结果1中的记录。
这是我尝试展示我最终想要的内容。
VAR A = (
select Id, Name
from Items
)
/* result 1 */
select A.*
/* result 2 */
select Id,
Alias
from ItemAliases
where Id in ( A.Id )
答案 0 :(得分:1)
我认为您只想存储Result1并使用它来构成Result2:
declare @Result1 table (Id int primary key, Name varchar(100));
insert into @Result1
-- store Result1
select Id, Name
from Items
--return Result1
select Id, Name
from @Result1;
--return Result2 using stored Result1
select Id,
Alias
from ItemAliases
where Id in (select Id from @Result1);
答案 1 :(得分:0)
--Result 1
SELECT ID, Name
FROM Items
[You WHERE Clause here if any]
--Result 2
SELECT Id, Alias
FROM ItemAliases ia
INNER JOIN Items i ON ia.ID = i.ID
OR
--Using temporay in memory table
DECLARE @abc AS TABLE (
ID AS Int,
Name AS varchar(25)
)
SELECT ID, Name
INTO @abc
FROM Items
[You WHERE Clause here if any]
--Result 1
SELECT * FROM @abc
--Result 2
SELECT Id, Alias
FROM ItemAliases ia
INNER JOIN @abc i ON ia.ID = i.ID