-1

我有两张桌子:

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

表中的两列都与表中的列Accessory匹配。如何让表格显示适当的而不是, 和?ItemIDProductsAccessoryProductIDPartItemIDAccessoryItemID

例如:

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

我希望输出看起来像这样:

ProductID=Part, PartItemID=1, Accessory=Accessory, AccessoryItemID=5
4

1 回答 1

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

这将在您的附件表中每行输出相应的产品作为零件和附件。

于 2013-03-07T21:52:40.147 回答