我有两张桌子:
dbo.Products [ItemID] [ProductID]
dbo.Accessory [PartItemID] [AccessoryItemID]
Accessory
表中的两列与ItemID
表中的Products
列相匹配。
如何让Accessory
表格显示相应的ProductID
,而不是PartItemID
和AccessoryItemID
?
例如:
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 :(得分: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
这将在附件表中的每行输出相应的产品作为零件和附件。