2013-03-07 48 views
-1

我有兩個表:如何使用SQL Server使用單個列來填充另一個表中的兩個單獨的列?

dbo.Products [ItemID] [ProductID] 
dbo.Accessory [PartItemID] [AccessoryItemID] 

Accessory表列都匹配在Products表中的列ItemID。 如何獲得Accessory表格以顯示相應的ProductID而不是PartItemIDAccessoryItemID

例如:

ItemID=1, ProductID=Part, PartItemID=1,AccessoryItemID=5 
ItemID=5, ProductID=Accessory, PartItemID=5, AccessoryItemID=NULL 

我想輸出看起來像這樣:

ProductID=Part, PartItemID=1, Accessory=Accessory, AccessoryItemID=5 
+0

@用戶.....你需要更詳細地描述你的表格。請顯示錶名幷包括每個表名的所有列。然後,當談到一個專欄名稱時,使用表格名稱......即Products,[ItemID],附件。[PartItemId]。這會讓你的問題更加清楚 – MikeTWebb 2013-03-07 21:44:12

+0

'JOIN'這兩個表格 – 2013-03-07 21:45:04

+0

您能否解釋一下(或重複說明)下列內容:「**附件表中的兩個**列都與產品表中的ItemID列相匹配」。 – 2013-03-07 21:47:48

回答

1

正如@ PM77-1說,但更具體,JOIN上所有的按鍵是必要的。您可以多次加入同一個表格。

你的情況:

SELECT p1.ProductID as PartItem 
    , a.PartItemID 
    , p2.ProductID as AccessoryItem 
    , a.AccessoryItemID 
    FROM dbo.Accessory a 
    LEFT JOIN dbo.Products p1 
     ON p1.ItemID = a.PartItemID 
    LEFT JOIN dbo.Products p2 
     ON p1.ItemID = a.AccessoryItemID 

這將輸出相應的產品列爲第一和每行配件在附件表。

相關問題