2016-07-05 7 views
0

私は、特定のIDに基づいてデータを取得するためのストアドプロシージャを作成しています。それはすべてうまくできていますが、いくつかの列は外部キーです。ストアドプロシージャ内でこれをすべて行うにはどうすればよいですか?T-SQL selectストアドプロシージャの外部キーの処理?

参考として、これらのストアドプロシージャを呼び出してWebサイトを更新するために、ASP.NETを使用しています(まだ学習していません)。 AdventureWorksデータベースで例えば

、:最後の2列は、実際のカテゴリとモデル名ではなく、外部キーを返すようにするために

CREATE PROCEDURE spLoadProduct 
AS 
BEGIN 
    SET NOCOUNT ON; 

    SELECT 
     [ProductID], [Name], 
     [ProductCategoryID], [ProductModelID] 
    FROM 
     [SalesLT].[Product] 
END 

Screenshot of current SP result

私が欲しいものです。私がしようとしているように、ストアドプロシージャのすべてでそれを行うという標準的なプラクティスですか?

+2

グーグル 'SQL ServerのJoins':

CREATE PROCEDURE spLoadProduct AS BEGIN SELECT p.ProductID , p.Name , p.ProductCategoryID , p.ProductModelID , ProductCategoryName = pc.Name , ProductModelName = pm.Name FROM SalesLT.Product p INNER JOIN SalesLT.ProductCategory pc ON p.ProductCategoryID = pc.ProductCategoryID INNER JOIN SalesLT.ProductModel pm ON p.ProductModelID = pm.ProductModelID; END 

インナーはチュートリアルに参加します。 –

答えて

0

多分私はあなたの質問を誤解していますが、ストアドプロシージャに結合を含めることができます。

例お持ちの場合はどこに代わりのotherinfo列を表示したい場合は表2

 
Table_1:      Table_2: 
id name afkey    akey otherinfo 
1 fred 1     1  info 
2 jon 2     2  other 
3 abbie 3     3  more info 

に出afkeyリンクafkey外部キーあなたは持っている可能性があり

create PROCEDURE spLoad 
AS 
    BEGIN 
     SET NOCOUNT ON; 
     SELECT NAME, OTHERINFO 
     FROM TABLE_1 
     INNER JOIN TABLE_2 
     ON TABLE_1.afkey = TABLE_2.akey 
    END 
関連する問題