2011-11-04 155 views
-1

我希望结果集包含基于外部SELECT查询的每一行执行的查询联合。我该怎么做呢?TSQL相当于Linq SelectMany

举个例子:

create table Person 
(
    Id int, 
    Age int 
) 

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

我想一个结果,显示了我,每个人,这电影的那个人将被允许观看。

更新:好吧,事实证明,由于模型完全不同,所以在TSQL中没有“SelectMany”的“等价物”,因为正确答案的作者指出内部连接可以很好地完成这项工作。

+2

你可以发布样本数据和预期的结果,对我来说句子没有多大意义。 – JonH

+0

你能告诉我们一个示例数据和期望的输出吗? –

+0

@MladenPrajdic - 嗨mladen它是乔恩:)。 – JonH

回答

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 
+0

许多形式的SelectMany可以作为一个连接来实现 – Andomar