TSQL相当于Linq SelectMany

时间:2011-11-04 12:29:24

标签: linq tsql

我希望结果集包含基于外部SELECT查询的每一行执行的查询的并集。我该怎么做?

举个例子:

create table Person
(
    Id int,
    Age int
)

create table Movie
(
    Id int,
    Title varchar(500),
    AgeRestriction int
)

我想要一个结果集,向每个人展示哪些人可以观看的电影。

更新:好的,事实证明在TSQL中没有“等效”SelectMany,因为模型完全不同,因为正确答案的作者指出内部联接将完成工作很好。

1 个答案:

答案 0 :(得分:3)

你的问题很不清楚,但听起来你可能想要CROSS APPLY

随机示例

SELECT DISTINCT ca.* /*DISTINCT for UNION semantics*/
FROM   master..spt_values v
       CROSS APPLY (SELECT TOP 2 *
                    FROM   sys.columns c
                    WHERE  c.name > v.name
                    ORDER BY c.name) ca  

编辑。在澄清之后,您只需要JOIN

SELECT P.Id,
       M.Title
FROM   Person P
       JOIN Movie M
         ON M.AgeRestriction <= P.Age