2012-02-02 16 views
0

多くのプロジェクト情報を返すストアドプロシージャを作成しています。既存のDBの構造上、これが我々が取る必要があるアプローチであると判断されています。ストアドプロシージャでは、あるクエリの結果を別のクエリで使用する方法を教えてください

マイベースのクエリがこれはそれらの結果を取得した後

ProjectID || Name || Component1Type || Component2Type

のようなものを返します

Select * from Projects where ProjectID = @projectID

になるだろう、私はその後、コンポーネント1とコンポーネント2のテーブルを照会したいですそれらのコンポーネントの名前を何かで返します。

Select Component1.Name from Component1 where ComponentID = Component1Type (これは以前のクエリの結果である。)3つのまたは4つ以上の項目のためにこれをやった後、ちょうど名前

を返します

が、私は元のクエリにそれらを追加したいので、私は、

ProjectID || Name || Component1Type || Component2Type || Name1 || Name2 || etc...

これを行う方法上の任意のアイデアをある1つの行を取り戻しますか?私は一時テーブルを使用したいのですか、これを達成するための簡単な方法がありますか?

+0

プロジェクトテーブルをコンポーネントテーブルにジョインできますか? – msmucker0527

+0

すべてのデータを1行で返す必要がありますか?また、各プロジェクトには一定の数のコンポーネントがありますか? –

+0

@ msmucker0527結合のために個々の列名を列挙することなく結合を行う方法はありますか? – Jabsy

答えて

3
Select P.*, C1.Name as Name1, C2.Name as Name2 
from Projects P 
left join Component1 C1 
    on P.Component1Type = C1.ComponentID 
left join Component2 C2 
    on P.Component2Type = C2.ComponentID 
where P.ProjectID = @projectID 
+0

ありがとうございます!どうやら、私はすべてを考えていたようだ。 – Jabsy

関連する問題