2011-11-04 157 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