2011-08-18 64 views
0

你好,我想是這樣的撂荒(不使用子查詢):用在一個表上的多個不同的領域有不同的條件選擇

select planName where period=1 as 1stPlan 
select planName where period=2 as 2ndPlan 
select planName where period=3 as 3ndPlan 
... 
FROM plan inner join project ON Project.Id=Plan.ProjectId 

謝謝

+0

考慮使用PIVOT:HTTP ://msdn.microsoft.com/en-us/library/ms177410.aspx –

回答

2
select 
    plan1.planName, 
    plan2.planName, 
    plan3.planName 
FROM project 
    left join plan plan1 ON Project.Id=Plan1.ProjectId and Plan1.period=1 
    left join plan plan2 ON Project.Id=Plan2.ProjectId and Plan2.period=2 
    left join plan plan3 ON Project.Id=Plan3.ProjectId and Plan3.period=3 
+0

在這種情況下哪個性能更好?左連接或子查詢? – Mohsen

+0

@Mohsen:不能說。你需要看執行計劃。 –

相關問題